45 lines
774 B
Go
45 lines
774 B
Go
package manifest
|
|
|
|
import "time"
|
|
|
|
type Entry struct {
|
|
ID string
|
|
Filename string
|
|
Path string
|
|
Size int64
|
|
Cloud string
|
|
Exported int64
|
|
}
|
|
|
|
type Manifest interface {
|
|
Has(id string) bool
|
|
Add(id string, filename string, size int64, cloud string)
|
|
AddEntry(entry Entry)
|
|
Save() error
|
|
Close()
|
|
OpenAppend() error
|
|
}
|
|
|
|
type EntryReader interface {
|
|
Entries() map[string]Entry
|
|
}
|
|
|
|
func newEntry(id, filename string, size int64, cloud string) Entry {
|
|
return Entry{
|
|
ID: id,
|
|
Filename: filename,
|
|
Path: filename,
|
|
Size: size,
|
|
Cloud: cloud,
|
|
Exported: time.Now().Unix(),
|
|
}
|
|
}
|
|
|
|
func NewEntry(id, filename, path string, size int64, cloud string) Entry {
|
|
e := newEntry(id, filename, size, cloud)
|
|
if path != "" {
|
|
e.Path = path
|
|
}
|
|
return e
|
|
}
|