in cmd/build-fc-zip/main.go [82:121]
func compressExeAndArgs(outZipPath string, exePath string, args []string) error {
zipFile, err := os.Create(outZipPath)
if err != nil {
return err
}
defer func() {
closeErr := zipFile.Close()
if closeErr != nil {
fmt.Fprintf(os.Stderr, "Failed to close zip file: %v\n", closeErr)
}
}()
zipWriter := zip.NewWriter(zipFile)
defer zipWriter.Close()
data, err := ioutil.ReadFile(exePath)
if err != nil {
return err
}
err = writeExe(zipWriter, filepath.Base(exePath), data)
if err != nil {
return err
}
for _, arg := range args {
writer, err := zipWriter.Create(arg)
if err != nil {
return err
}
data, err := ioutil.ReadFile(arg)
if err != nil {
return err
}
_, err = writer.Write(data)
if err != nil {
return err
}
}
return err
}