package zhead import ( "bytes" "text/template" "time" ) const header = `{{define "header" -}} date={{.Date.Format "2006-01-02T15:04:05Z07:00"}} key={{.KeyFile}} algorithm={{.Alg}} bocksize={{.BlockSize}} {{range .Sums}}{{printf "%x" .}} {{end}}{{end}}` type Header struct { Date time.Time KeyFile string Alg string BlockSize int Sums [][]byte } const ( DefaultAlg = "SHA512/256" DefaultBlockSize = 65535 ) func (h Header) Print() ([]byte, error) { t, err := template.New("header").Parse(header) if err != nil { return nil, err } buf := new(bytes.Buffer) err = t.ExecuteTemplate(buf, "header", h) return buf.Bytes(), err }