Skip to content

Commit f55384d

Browse files
authored
Merge pull request #3 from go-sharp/fix/2-open-file-handles
Fix #2 open file handles macOS
2 parents 1a5fcb6 + d2e8db6 commit f55384d

File tree

1 file changed

+29
-27
lines changed

1 file changed

+29
-27
lines changed

main.go

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
"github.com/jessevdk/go-flags"
1717
)
1818

19-
const version = "v0.1.1"
19+
const version = "v0.1.2"
2020

2121
var commonOpts options
2222
var parser = flags.NewParser(&commonOpts, flags.HelpFlag|flags.PassDoubleDash)
@@ -204,40 +204,42 @@ func createZipArchive(dir, dst string) error {
204204
}()
205205

206206
for f := range work {
207-
reader, err := os.Open(f)
208-
if err != nil {
207+
if err := addFileToArchive(f, dir, zw); err != nil {
209208
log.Printf("%v failed to add to archive: %v\n", errorRedPrefix, err)
210-
continue
211209
}
212-
defer reader.Close()
210+
}
213211

214-
fiStat, err := os.Stat(f)
215-
if err != nil {
216-
log.Printf("%v failed to add to archive: %v\n", errorRedPrefix, err)
217-
continue
218-
}
212+
return <-done
213+
}
219214

220-
name := strings.TrimLeft(strings.TrimPrefix(f, dir), string(filepath.Separator))
221-
fh, err := zip.FileInfoHeader(fiStat)
222-
if err != nil {
223-
log.Printf("%v failed to add to archive: %v\n", errorRedPrefix, err)
224-
continue
225-
}
226-
fh.Name = name
215+
func addFileToArchive(file, dir string, zw *zip.Writer) error {
216+
reader, err := os.Open(file)
217+
if err != nil {
218+
return err
219+
}
220+
defer reader.Close()
227221

228-
writer, err := zw.CreateHeader(fh)
229-
if err != nil {
230-
log.Printf("%v failed to add to archive: %v\n", errorRedPrefix, err)
231-
continue
232-
}
222+
fiStat, err := os.Stat(file)
223+
if err != nil {
224+
return err
225+
}
233226

234-
if _, err := io.Copy(writer, reader); err != nil {
235-
log.Printf("%v failed to add to archive: %v\n", errorRedPrefix, err)
236-
continue
237-
}
227+
name := strings.TrimLeft(strings.TrimPrefix(file, dir), string(filepath.Separator))
228+
fh, err := zip.FileInfoHeader(fiStat)
229+
if err != nil {
230+
return err
238231
}
232+
fh.Name = name
239233

240-
return <-done
234+
writer, err := zw.CreateHeader(fh)
235+
if err != nil {
236+
return err
237+
}
238+
239+
if _, err := io.Copy(writer, reader); err != nil {
240+
return err
241+
}
242+
return nil
241243
}
242244

243245
type versionCmd struct{}

0 commit comments

Comments
 (0)