From: Sergey Matveev Date: Wed, 18 Feb 2026 14:38:03 +0000 (+0300) Subject: Ability to alter existing .meta4 X-Git-Tag: v1.3.0~3 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=a401e5e040084af10800c31d29b018508d258ae6;p=meta4ra.git Ability to alter existing .meta4 --- diff --git a/cmd/create.go b/cmd/create.go index 18831b1..1ef2a83 100644 --- a/cmd/create.go +++ b/cmd/create.go @@ -32,6 +32,7 @@ import ( 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", "", @@ -123,26 +124,42 @@ will be the priority and "cc" (may be empty) is location. 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) } diff --git a/internal/common.go b/internal/common.go index 869123e..afe18e1 100644 --- a/internal/common.go +++ b/internal/common.go @@ -21,7 +21,7 @@ import ( ) const ( - Generator = "meta4ra/1.2.0" + Generator = "meta4ra/1.3.0" SigMediaTypePGP = "application/pgp-signature" SigMediaTypeSSH = "application/ssh-signature" BufLen = 1 << 20