@@ -21,6 +21,8 @@ import (
21
21
"context"
22
22
"os"
23
23
24
+ "github.com/arduino/arduino-cli/arduino/sketches"
25
+
24
26
"github.com/arduino/arduino-cli/cli/errorcodes"
25
27
"github.com/arduino/arduino-cli/cli/feedback"
26
28
"github.com/arduino/arduino-cli/cli/instance"
@@ -56,7 +58,6 @@ func NewCommand() *cobra.Command {
56
58
uploadCommand .Flags ().BoolVarP (& verify , "verify" , "t" , false , "Verify uploaded binary after the upload." )
57
59
uploadCommand .Flags ().BoolVarP (& verbose , "verbose" , "v" , false , "Optional, turns on verbose mode." )
58
60
59
- uploadCommand .MarkFlagRequired ("fqbn" )
60
61
uploadCommand .MarkFlagRequired ("port" )
61
62
62
63
return uploadCommand
@@ -74,8 +75,17 @@ func run(command *cobra.Command, args []string) {
74
75
path = paths .New (args [0 ])
75
76
}
76
77
sketchPath := initSketchPath (path )
78
+ sketch , err := sketches .NewSketchFromPath (sketchPath )
79
+ if err != nil {
80
+ feedback .Errorf ("Error opening sketch: %v" , err )
81
+ os .Exit (errorcodes .ErrGeneric )
82
+ }
83
+ if fqbn == "" && sketch .Metadata .CPU .Fqbn == "" {
84
+ feedback .Errorf ("Error: no FQBN provided. Set --fqbn flag or attach board to sketch" )
85
+ os .Exit (errorcodes .ErrGeneric )
86
+ }
77
87
78
- if _ , err : = upload .Upload (context .Background (), & rpc.UploadReq {
88
+ if _ , err = upload .Upload (context .Background (), & rpc.UploadReq {
79
89
Instance : instance ,
80
90
Fqbn : fqbn ,
81
91
SketchPath : sketchPath .String (),
0 commit comments