Signed-off-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
25 lines
687 B
Go
25 lines
687 B
Go
package dpkg
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
|
|
"sirherobrine23.com.br/sirherobrine23/go-dpkg/ar"
|
|
)
|
|
|
|
// NewDpkg creates a new dpkg file and return a writer to write the data.tar file
|
|
func NewDpkg(w io.Writer, dpkg *Dpkg) (wr io.Writer, err error) {
|
|
dpkgFile, err := ar.NewWriter(w)
|
|
if err != nil {
|
|
return nil, err
|
|
} else if _, err = dpkgFile.WriteFile([]byte("2.0\n"), &ar.Header{Filename: "debian-binary", Mode: 0644, Size: 4}); err != nil {
|
|
return
|
|
} else if err = dpkg.WriteTo(dpkgFile); err != nil {
|
|
return
|
|
} else if err = dpkgFile.WriteHeader(&ar.Header{Filename: fmt.Sprintf("data.tar%s", dpkg.Ext), Mode: 0644, Size: dpkg.Size}); err != nil {
|
|
return
|
|
}
|
|
wr = dpkgFile
|
|
return
|
|
}
|