package mfer import ( "time" "github.com/davecgh/go-spew/spew" "google.golang.org/protobuf/proto" ) //go:generate protoc --go_out=. --go_opt=paths=source_relative mf.proto func newTimestampFromTime(t time.Time) *Timestamp { out := &Timestamp{ Seconds: t.Unix(), Nanos: int32(t.UnixNano() - (t.Unix() * 1000000000)), } return out } func (m *manifest) generate() error { if m.pbInner == nil { e := m.generateInner() if e != nil { return e } } output, err := proto.Marshal(m.pbInner) if err != nil { return err } spew.Dump(output) return nil } func (m *manifest) generateOuter(inner *MFFile) error { return nil } func (m *manifest) generateInner() error { m.pbInner = &MFFile{ Version: MFFile_ONE, CreatedAt: newTimestampFromTime(time.Now()), Files: []*MFFilePath{}, } for _, f := range m.files { nf := &MFFilePath{ Path: f.path, // FIXME add more stuff } m.pbInner.Files = append(m.pbInner.Files, nf) } spew.Dump(m.pbInner) return nil }