@@ -20,9 +20,9 @@ import (
20
20
"io/ioutil"
21
21
"os"
22
22
"path/filepath"
23
- "strings"
24
23
25
24
"github.com/arduino/arduino-cli/commands"
25
+ "github.com/arduino/arduino-cli/configuration"
26
26
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
27
27
)
28
28
@@ -35,27 +35,23 @@ void loop() {
35
35
` )
36
36
37
37
// CreateSketch creates a new sketch
38
- func CreateSketch (sketchName string ) (string , string , error ) {
39
- // Trim to avoid issues if user creates a sketch adding the .ino extesion to the name
40
- trimmedSketchName := strings .TrimSuffix (sketchName , ".ino" )
41
- sketchDir , err := filepath .Abs (trimmedSketchName )
42
- if err != nil {
43
- return "" , "" , err
44
- }
38
+ func CreateSketch (sketchDir string , sketchName string ) (string , error ) {
45
39
if err := os .MkdirAll (sketchDir , os .FileMode (0755 )); err != nil {
46
- return "" , "" , err
40
+ return "" , err
47
41
}
48
42
baseSketchName := filepath .Base (sketchDir )
49
43
sketchFile := filepath .Join (sketchDir , baseSketchName + ".ino" )
50
44
if err := ioutil .WriteFile (sketchFile , emptySketch , os .FileMode (0644 )); err != nil {
51
- return "" , "" , err
45
+ return "" , err
52
46
}
53
- return sketchDir , sketchFile , nil
47
+ return sketchFile , nil
54
48
}
55
49
56
50
// NewSketch FIXMEDOC
57
51
func NewSketch (ctx context.Context , req * rpc.NewSketchRequest ) (* rpc.NewSketchResponse , error ) {
58
- _ , sketchFile , err := CreateSketch (req .SketchName )
52
+ sketchesDir := configuration .Settings .GetString ("directories.Sketches" );
53
+ sketchDir := filepath .Join (sketchesDir , req .SketchName )
54
+ sketchFile , err := CreateSketch (sketchDir , req .SketchName )
59
55
if err != nil {
60
56
return nil , & commands.CantCreateSketchError {Cause : err }
61
57
}
0 commit comments