aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-08-05 23:15:30 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-08-05 23:15:30 +0200
commit30d6f2dc02372f0e9947196a8c287f3b106da08b (patch)
tree13e9c33d348a4c11a4ecb1f4be332e6bcee1d42c
parentb2e05ab1eefd6249fbb950842f65924a38d527a3 (diff)
...
-rw-r--r--zsig/zsig.go25
1 files changed, 23 insertions, 2 deletions
diff --git a/zsig/zsig.go b/zsig/zsig.go
index 0b97000..97c7824 100644
--- a/zsig/zsig.go
+++ b/zsig/zsig.go
@@ -132,12 +132,33 @@ type Writer struct {
func NewWriter(w io.Writer) (*Writer, error) {
z := &Writer{
Header: Header{
- OS: 3, // UNIX
+ OS: osUnix, // UNIX
},
}
return z, nil
}
-func (w *Writer) Write(p []byte) (n int, err error) {
+func (z *Writer) Write(p []byte) (n int, err error) {
+ buf := [10]byte{0: gzipID1, 1: gzipID2, 2: gzipDeflate}
+ if !z.wroteHeader {
+ if z.Comment != "" {
+ buf[3] |= flagComment
+ }
+ if z.Extra != nil {
+ buf[3] |= flagExtra
+ }
+ if z.Name != "" {
+ buf[3] |= flagName
+ }
+ if z.CRC != 0 {
+ buf[3] |= flagHdrCrc
+ }
+ if !z.ModTime.IsZero() {
+ le.PutUint32(buf[4:8], uint32(z.ModTime.Unix()))
+ }
+ buf[9] = z.OS
+ // TODO
+ // w.Write(buf[:10])
+ }
panic("not implemented")
}