Skip to content

Commit e3a3096

Browse files
facchinmcmaglie
authored andcommitted
Fix permission problems while unzipping
1 parent b3dd26f commit e3a3096

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

Diff for: sketch_loader.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func (s *SketchLoader) Run(ctx *types.Context) error {
6969
dir, _ := ioutil.TempDir("", "arduino_sketch_zip_temp")
7070
sketchLocation, err = utils.ExtractZip(sketchLocation, dir)
7171
if err != nil {
72-
return nil
72+
panic(err)
7373
}
7474
mainSketchFileName := filepath.Base(sketchLocation) + ".ino"
7575
sketchLocation = filepath.Join(sketchLocation, mainSketchFileName)

Diff for: utils/utils.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -508,9 +508,12 @@ func ExtractZip(filePath string, location string) (string, error) {
508508
for _, f := range r.File {
509509
fullname := filepath.Join(location, strings.Replace(f.Name, "", "", -1))
510510
if f.FileInfo().IsDir() {
511-
os.MkdirAll(fullname, f.FileInfo().Mode().Perm())
511+
os.MkdirAll(fullname, 0755)
512512
} else {
513-
os.MkdirAll(filepath.Dir(fullname), 0755)
513+
_, err := os.Stat(filepath.Dir(fullname))
514+
if err != nil {
515+
os.MkdirAll(filepath.Dir(fullname), 0755)
516+
}
514517
perms := f.FileInfo().Mode().Perm()
515518
out, err := os.OpenFile(fullname, os.O_CREATE|os.O_RDWR, perms)
516519
if err != nil {

0 commit comments

Comments
 (0)