@@ -105,8 +105,6 @@ func executeSketchSyncCommand(cmd *cobra.Command, args []string) error {
105105
106106 onlineSketches , err := client .DecodeArduinoCreateSketches (resp )
107107 if err != nil {
108-
109- fmt .Println (ioutil .ReadAll (resp .Body ))
110108 formatter .PrintErrorMessage ("Cannot unmarshal response from create, sync failed" )
111109 return nil
112110 }
@@ -117,6 +115,7 @@ func executeSketchSyncCommand(cmd *cobra.Command, args []string) error {
117115 }
118116
119117 for _ , item := range sketchMap {
118+
120119 itemOnline , hasConflict := onlineSketchesMap [item .Name ]
121120 if hasConflict {
122121 //solve conflicts
@@ -141,11 +140,17 @@ func executeSketchSyncCommand(cmd *cobra.Command, args []string) error {
141140 switch priority {
142141 case "remote" :
143142 formatter .Print ("pushing edits of sketch: " + item .Name )
144- editSketch (* item , sketchbook , bearerToken )
143+ err := editSketch (* item , sketchbook , bearerToken )
144+ if err != nil {
145+ formatter .PrintError (err )
146+ }
145147 break
146148 case "local" :
147149 formatter .Print ("pulling " + item .Name )
148- pullSketch (itemOnline , sketchbook , bearerToken )
150+ err := pullSketch (itemOnline , sketchbook , bearerToken )
151+ if err != nil {
152+ formatter .PrintError (err )
153+ }
149154 break
150155 case "skip-conflict" :
151156 formatter .Print ("skipping " + item .Name )
@@ -156,17 +161,15 @@ func executeSketchSyncCommand(cmd *cobra.Command, args []string) error {
156161 formatter .Print ("Priority not recognized, using skip-conflict" )
157162 }
158163 formatter .Print ("skipping " + item .Name )
159- break
160164 }
161165
162- delete (onlineSketchesMap , fmt .Sprint (item .ID ))
163166 } else { //only local, push
164167 formatter .Print ("pushing " + item .Name )
165168 pushSketch (* item , sketchbook , bearerToken )
166169 }
167170 }
168171 for _ , item := range onlineSketches .Sketches {
169- _ , hasConflict := onlineSketchesMap [fmt . Sprint ( item .ID ) ]
172+ _ , hasConflict := onlineSketchesMap [* item .Name ]
170173 if hasConflict {
171174 continue
172175 }
@@ -260,52 +263,40 @@ func pullSketch(sketch *createClient.ArduinoCreateSketch, sketchbook string, bea
260263
261264 destFolder := filepath .Join (sketchbook , * sketch .Name )
262265
263- resp , err = client .ShowFiles (context .Background (), * sketch .Ino .Path )
264- if err != nil {
265- return err
266- }
267-
268- for _ , file := range r .Files {
269- urlPath := strings .Split (* file .Path , ":" )[1 ]
266+ for _ , file := range append (r .Files , sketch .Ino ) {
270267 path := findPathOf (* sketch .Name , * file .Path )
271- path = filepath .Join (sketchFolder , path )
272268
273269 err := os .MkdirAll (filepath .Dir (path ), 0755 )
274270 if err != nil {
275271 return err
276272 }
277- resp , err := client .ShowFiles (context .Background (), "/" + urlPath )
273+
274+ resp , err := client .ShowFiles (context .Background (), createClient .ShowFilesPath ("sketch" , sketch .ID .String (), path ))
278275 if err != nil {
279276 return err
280277 }
281-
282278 filewithData , err := client .DecodeArduinoCreateFile (resp )
283279 if err != nil {
284- return err
285- }
286- if resp . StatusCode != 200 {
287- errResp , err := client . DecodeErrorResponse (resp )
288- if err != nil {
289- return errors . New ( resp . Status )
280+ if resp . StatusCode != 200 {
281+ errResp , err := client . DecodeErrorResponse ( resp )
282+ if err != nil {
283+ return errors . New (resp . Status )
284+ }
285+ return errResp
290286 }
291- return errResp
292287 }
293288
294- encodedData , err := base64 .StdEncoding .DecodeString (* filewithData .Data )
289+ path = filepath .Join (sketchFolder , path )
290+ decodedData , err := base64 .StdEncoding .DecodeString (* filewithData .Data )
295291 if err != nil {
296292 return err
297293 }
298294
299- err = ioutil .WriteFile (path , encodedData , 0666 )
295+ err = ioutil .WriteFile (path , decodedData , 0666 )
300296 if err != nil {
301297 return errors .New ("Copy of a file of the downloaded sketch failed, sync failed" )
302298 }
303299 }
304- encodedData , err := base64 .StdEncoding .DecodeString (* sketch .Ino .Data )
305- err = ioutil .WriteFile (filepath .Join (sketchFolder , * sketch .Ino .Name ), encodedData , 0666 )
306- if err != nil {
307- return errors .New ("Copy of a file of the downloaded sketch failed, sync failed" )
308- }
309300
310301 err = os .RemoveAll (destFolder )
311302 if err != nil {
@@ -323,7 +314,7 @@ func findPathOf(sketchName string, path string) string {
323314 list := strings .Split (path , "/" )
324315
325316 for i := len (list ) - 1 ; i > - 1 ; i -- {
326- fmt .Println (list [i ], "==" , sketchName , "?" )
317+ // fmt.Println(list[i], "==", sketchName, "?", list[i] == sketchName )
327318 if list [i ] == sketchName {
328319 return filepath .Join (list [i + 1 : len (list )]... )
329320 }
0 commit comments