diff --git a/internal/archive/archive.go b/internal/archive/archive.go index 0e727b0..5145afe 100644 --- a/internal/archive/archive.go +++ b/internal/archive/archive.go @@ -72,10 +72,14 @@ func addToArchive(tw *tar.Writer, filename string, hooks []makeshift.Hook) error } } - // open file to write to archive - file, err = os.Open(tempfile) + // use original file if no hooks to write archive + if len(hooks) == 0 { + file, err = os.Open(filename) + } else { + file, err = os.Open(tempfile) + } if err != nil { - return fmt.Errorf("failed to open temporary file: %v", err) + return fmt.Errorf("failed to open archive file: %v", err) } defer file.Close() @@ -108,15 +112,21 @@ func addToArchive(tw *tar.Writer, filename string, hooks []makeshift.Hook) error } // copy file content to tar archive - _, err = io.Copy(tw, strings.NewReader(string(data.([]byte)))) + if len(hooks) == 0 { + _, err = io.Copy(tw, file) + } else { + _, err = io.Copy(tw, strings.NewReader(string(data.([]byte)))) + } if err != nil { return err } // delete the temporary file since we're done with it - err = os.Remove(tempfile) - if err != nil { - return err + if len(hooks) != 0 { + err = os.Remove(tempfile) + if err != nil { + return err + } } return nil