cyanocorax/render/archive/archive.go

47 lines
628 B
Go

package archive
import (
"archive/zip"
"os"
"fmt"
)
type Archive struct {
file *os.File
}
func Create(name string) (Archive, error) {
var archive Archive
file, err := os.Create(name)
if err != nil {
return archive, err
}
archive.setFile(file)
return archive, nil
}
func (a *Archive) AddFile(path, content string) error {
writer := zip.NewWriter(a.file)
defer writer.Close()
file, err := writer.Create(path)
if err != nil {
return err
}
fmt.Fprintf(file, content)
return nil
}
func (a *Archive) Close() error {
return a.file.Close()
}
func (a *Archive) setFile(file *os.File) {
a.file = file
}