diff --git a/cli/upload/upload.go b/cli/upload/upload.go index 670f0847a5e..3580ba2ade2 100644 --- a/cli/upload/upload.go +++ b/cli/upload/upload.go @@ -19,6 +19,7 @@ import ( "context" "os" + "github.com/arduino/arduino-cli/arduino/sketch" "github.com/arduino/arduino-cli/cli/arguments" "github.com/arduino/arduino-cli/cli/errorcodes" "github.com/arduino/arduino-cli/cli/feedback" @@ -76,10 +77,23 @@ func runUploadCommand(command *cobra.Command, args []string) { if len(args) > 0 { path = args[0] } - sketchPath := arguments.InitSketchPath(path) - sk := arguments.NewSketch(sketchPath) - discoveryPort := port.GetDiscoveryPort(instance, sk) + + if importDir == "" && importFile == "" { + arguments.WarnDeprecatedFiles(sketchPath) + } + + sk, err := sketch.New(sketchPath) + if err != nil && importDir == "" && importFile == "" { + feedback.Errorf(tr("Error during Upload: %v"), err) + os.Exit(errorcodes.ErrGeneric) + } + + discoveryPort, err := port.GetPort(instance, sk) + if err != nil { + feedback.Errorf(tr("Error during Upload: %v"), err) + os.Exit(errorcodes.ErrGeneric) + } if fqbn.String() == "" && sk != nil && sk.Metadata != nil { // If the user didn't specify an FQBN and a sketch.json file is present diff --git a/test/test_upload.py b/test/test_upload.py index cf1933b84bf..2edc9ec7e8b 100644 --- a/test/test_upload.py +++ b/test/test_upload.py @@ -111,7 +111,7 @@ def test_upload_after_attach(run_command, data_dir, detected_boards): # Create a sketch sketch_path = os.path.join(data_dir, "foo") assert run_command(["sketch", "new", sketch_path]) - assert run_command(["board", "attach", f"serial://{board.address}", sketch_path]) + assert run_command(["board", "attach", "-p", board.address, sketch_path]) # Build sketch assert run_command(["compile", sketch_path]) # Upload