func runCreate() {
fn := flag.String("fn", "", "Filename")
+ add := flag.String("add", "", "Add file to specified .meta4")
mtime := flag.String("mtime", "", "Take that file's mtime as a Published date")
desc := flag.String("desc", "", "Description")
sigPGP := flag.String("sig-pgp", "",
if *torrent != "" {
f.MetaURLs = []meta4ra.MetaURL{{MediaType: "torrent", URL: *torrent}}
}
- var published time.Time
- if *mtime == "" {
- published = time.Now()
+
+ var meta meta4ra.Metalink
+ if *add == "" {
+ var published time.Time
+ if *mtime == "" {
+ published = time.Now()
+ } else {
+ var fi fs.FileInfo
+ fi, err = os.Stat(*mtime)
+ if err != nil {
+ log.Fatal(err)
+ }
+ published = fi.ModTime()
+ }
+ meta.Files = []meta4ra.File{f}
+ if !*noPublished {
+ t := published.UTC().Truncate(time.Second)
+ meta.Published = &t
+ }
+ if !*noGenerator {
+ meta.Generator = meta4ra.Generator
+ }
} else {
- var fi fs.FileInfo
- fi, err = os.Stat(*mtime)
+ var data []byte
+ data, err = os.ReadFile(*add)
if err != nil {
log.Fatal(err)
}
- published = fi.ModTime()
- }
- m := meta4ra.Metalink{Files: []meta4ra.File{f}}
- if !*noPublished {
- t := published.UTC().Truncate(time.Second)
- m.Published = &t
- }
- if !*noGenerator {
- m.Generator = meta4ra.Generator
+ err = xml.Unmarshal(data, &meta)
+ if err != nil {
+ log.Fatal(err)
+ }
+ meta.Files = append(meta.Files, f)
}
- out, err := xml.MarshalIndent(&m, "", " ")
+
+ out, err := xml.MarshalIndent(&meta, "", " ")
if err != nil {
log.Fatal(err)
}