28 lines
693 B
Go
28 lines
693 B
Go
package runtime
|
|
|
|
import (
|
|
"archive/zip"
|
|
"bytes"
|
|
)
|
|
|
|
// buildZip создаёт zip-архив с одним файлом fileName и содержимым content.
|
|
// Вспомогательная функция: используется в buildScriptZip (PHP/Ruby/Perl),
|
|
// а также как основа для buildGoSourceZip и buildJSDeployZip.
|
|
func buildZip(fileName string, content []byte) ([]byte, error) {
|
|
var buf bytes.Buffer
|
|
zw := zip.NewWriter(&buf)
|
|
|
|
fw, err := zw.Create(fileName)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if _, err := fw.Write(content); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if err := zw.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
return buf.Bytes(), nil
|
|
}
|