Skip to content

Commit c7d1283

Browse files
committed
Improved 'sketch archive' parameters check
1 parent 3764118 commit c7d1283

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

Diff for: internal/cli/sketch/archive.go

+19-13
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ import (
2020
"fmt"
2121
"os"
2222

23-
sk "github.com/arduino/arduino-cli/commands/sketch"
23+
"github.com/arduino/arduino-cli/commands/sketch"
24+
"github.com/arduino/arduino-cli/internal/cli/arguments"
2425
"github.com/arduino/arduino-cli/internal/cli/feedback"
2526
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
26-
"github.com/arduino/go-paths-helper"
2727
"github.com/sirupsen/logrus"
2828
"github.com/spf13/cobra"
2929
)
@@ -55,25 +55,31 @@ func initArchiveCommand() *cobra.Command {
5555
func runArchiveCommand(args []string, includeBuildDir bool, overwrite bool) {
5656
logrus.Info("Executing `arduino-cli sketch archive`")
5757

58-
sketchPath := paths.New(".")
59-
if len(args) >= 1 {
60-
sketchPath = paths.New(args[0])
58+
sketchPathArg := ""
59+
if len(args) > 0 {
60+
sketchPathArg = args[0]
6161
}
6262

63-
archivePath := ""
64-
if len(args) == 2 {
65-
archivePath = args[1]
63+
archivePathArg := ""
64+
if len(args) > 1 {
65+
archivePathArg = args[1]
6666
}
6767

68-
_, err := sk.ArchiveSketch(context.Background(),
68+
sketchPath := arguments.InitSketchPath(sketchPathArg)
69+
sk, err := sketch.LoadSketch(context.Background(), &rpc.LoadSketchRequest{SketchPath: sketchPath.String()})
70+
if err != nil {
71+
feedback.FatalError(err, feedback.ErrGeneric)
72+
}
73+
feedback.WarnAboutDeprecatedFiles(sk)
74+
75+
if _, err := sketch.ArchiveSketch(context.Background(),
6976
&rpc.ArchiveSketchRequest{
7077
SketchPath: sketchPath.String(),
71-
ArchivePath: archivePath,
78+
ArchivePath: archivePathArg,
7279
IncludeBuildDir: includeBuildDir,
7380
Overwrite: overwrite,
74-
})
75-
76-
if err != nil {
81+
},
82+
); err != nil {
7783
feedback.Fatal(tr("Error archiving: %v", err), feedback.ErrGeneric)
7884
}
7985
}

Diff for: internal/integrationtest/sketch/sketch_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -350,9 +350,9 @@ func TestSketchArchiveWithMultipleMainFiles(t *testing.T) {
350350
cli.SetWorkingDir(sketchDir)
351351
_, stderr, err := cli.Run("sketch", "archive")
352352
require.Error(t, err)
353-
require.Contains(t, string(stderr), "Sketches with .pde extension are deprecated, please rename the following files to .ino")
353+
require.NotContains(t, string(stderr), "Sketches with .pde extension are deprecated, please rename the following files to .ino")
354354
require.Contains(t, string(stderr), relPath.String())
355-
require.Contains(t, string(stderr), "Error archiving: Can't open sketch: multiple main sketch files found")
355+
require.Contains(t, string(stderr), "Can't open sketch: multiple main sketch files found")
356356
}
357357

358358
func TestSketchArchiveCaseMismatchFails(t *testing.T) {

0 commit comments

Comments
 (0)