From 30d6f2dc02372f0e9947196a8c287f3b106da08b Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 5 Aug 2017 23:15:30 +0200 Subject: ... --- zsig/zsig.go | 25 +++++++++++++++++++++++-- 1 file 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") } -- cgit v1.2.3