diff --git a/fileexporter/archive.go b/fileexporter/archive.go index d4fc1ceb..19544724 100644 --- a/fileexporter/archive.go +++ b/fileexporter/archive.go @@ -4,46 +4,30 @@ import ( "archive/zip" "errors" "io" - "log" "os" "path" ) type archiveFileCreator interface { Create(name string) (io.Writer, error) - Close() error -} - -type filesCloser []io.Closer - -func (fds filesCloser) Close() error { - log.Println("Closing fd..") - for _, fd := range fds { - err := fd.Close() - if err != nil { - return err - } - } - - return nil } func init() { - OutputFormats["archive"] = func(args ...string) (func(string) (io.WriteCloser, error), io.Closer, error) { + OutputFormats["archive"] = func(args ...string) (func(string) (io.WriteCloser, error), error) { if len(args) != 1 { - return nil, nil, errors.New("archive has 1 required argument: [destination-file]") + return nil, errors.New("archive has 1 required argument: [destination-file]") } fd, err := os.Create(args[0]) if err != nil { - return nil, nil, err + return nil, err } var w archiveFileCreator if path.Ext(args[0]) == ".zip" { w = zip.NewWriter(fd) } else { - return nil, nil, errors.New("destination file has to have .zip extension") + return nil, errors.New("destination file has to have .zip extension") } return func(dest string) (io.WriteCloser, error) { @@ -53,6 +37,6 @@ func init() { } return NopCloser(fw), nil - }, filesCloser{w, fd}, nil + }, nil } } diff --git a/fileexporter/copy.go b/fileexporter/copy.go index d4c7b96a..6610b2c1 100644 --- a/fileexporter/copy.go +++ b/fileexporter/copy.go @@ -8,15 +8,15 @@ import ( ) func init() { - OutputFormats["copy"] = func(args ...string) (func(string) (io.WriteCloser, error), io.Closer, error) { + OutputFormats["copy"] = func(args ...string) (func(string) (io.WriteCloser, error), error) { if len(args) > 1 { - return nil, nil, errors.New("copy can only take 1 argument: [destination-folder]") + return nil, errors.New("copy can only take 1 argument: [destination-folder]") } if len(args) == 1 { fic.FilesDir = args[0] } - return nil, nil, nil + return nil, nil } } diff --git a/fileexporter/main.go b/fileexporter/main.go index 5fea7f6d..2fa95ab9 100644 --- a/fileexporter/main.go +++ b/fileexporter/main.go @@ -14,7 +14,7 @@ import ( "srs.epita.fr/fic-server/libfic" ) -var OutputFormats = map[string]func(...string) (func(string) (io.WriteCloser, error), io.Closer, error){} +var OutputFormats = map[string]func(...string) (func(string) (io.WriteCloser, error), error){} func exportThemeFiles(tdir string) (errs error) { theme, exceptions, err := sync.BuildTheme(sync.GlobalImporter, tdir) @@ -129,13 +129,6 @@ func main() { log.Println("Using", sync.GlobalImporter.Kind()) - hasError := doExport() - if hasError { - os.Exit(1) - } -} - -func doExport() bool { // Configure destination if flag.NArg() < 1 { var formats []string @@ -154,10 +147,7 @@ func doExport() bool { log.Fatal("Please define wanted output format between [" + strings.Join(formats, " ") + "]") } else { - fw, closer, err := outputFormat(flag.Args()[1:]...) - if closer != nil { - defer closer.Close() - } + fw, err := outputFormat(flag.Args()[1:]...) if err != nil { log.Fatal(err) } else if fw != nil { @@ -180,5 +170,7 @@ func doExport() bool { } } - return hasError + if hasError { + os.Exit(1) + } }