From 9e29dea8e4dd374a93ade78b53fb9cbeea581b35 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 17 Feb 2026 10:45:57 +0300 Subject: [PATCH] Useless -meta4, as it is required anyway --- README | 8 ++++---- cmd/check.go | 11 +++++++---- cmd/list.go | 15 +++++++++------ 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/README b/README index a3fec86..1985451 100644 --- a/README +++ b/README @@ -22,13 +22,13 @@ Example attempt to download .meta4's file from Russia-based location as most preferred, with fallback to Europe continent, leaving location-less next, randomising remaining: - fn=$(meta4ra-list -meta4 .meta4 | head -1) - size=$(meta4ra-list -meta4 .meta4 -size $fn) - meta4ra-list -meta4 .meta4 $fn | + fn=$(meta4ra-list .meta4 | head -1) + size=$(meta4ra-list -size .meta4 $fn) + meta4ra-list .meta4 $fn | meta4ra-url-sort ru c:eu "" rand | while read url ; do meta4ra-dl -size $size -progress "$url" | - meta4ra-check -meta4 .meta4 -pipe $fn >$fn || { + meta4ra-check -pipe .meta4 $fn >$fn || { rm $fn continue } diff --git a/cmd/check.go b/cmd/check.go index 560936c..8e95b9c 100644 --- a/cmd/check.go +++ b/cmd/check.go @@ -35,10 +35,9 @@ func runCheck() { allHashes := flag.Bool("all-hashes", false, "Check all hashes, not the first common one") hashes := flag.String("hashes", meta4ra.HashesDefault, "hash-name:commandline[,...]") - metaPath := flag.String("meta4", "file.meta4", "Metalink file") flag.Usage = func() { fmt.Fprintf(flag.CommandLine.Output(), - "Usage: %s [options] [FILE ...]\n", os.Args[0]) + "Usage: %s [options] FILE.meta4 [FILE ...]\n", os.Args[0]) flag.PrintDefaults() fmt.Fprint(flag.CommandLine.Output(), ` If no FILEs are specified, then all s from metalink are searched and @@ -58,9 +57,13 @@ format, then you can just specify an empty ("") FILE. return } + if flag.NArg() < 1 { + flag.Usage() + os.Exit(1) + } var meta meta4ra.Metalink { - data, err := os.ReadFile(*metaPath) + data, err := os.ReadFile(flag.Arg(0)) if err != nil { log.Fatal(err) } @@ -71,7 +74,7 @@ format, then you can just specify an empty ("") FILE. } toCheck := make(map[string]string) - for _, fn := range flag.Args() { + for _, fn := range flag.Args()[1:] { toCheck[path.Base(fn)] = fn } if *pipe && len(toCheck) != 1 { diff --git a/cmd/list.go b/cmd/list.go index 73757e8..45a3640 100644 --- a/cmd/list.go +++ b/cmd/list.go @@ -28,12 +28,11 @@ import ( ) func runList() { - metaPath := flag.String("meta4", "file.meta4", "Metalink file") doSize := flag.Bool("size", false, "Print file's size") doSig := flag.Bool("sig", false, "Extract signature files") flag.Usage = func() { fmt.Fprintf(flag.CommandLine.Output(), - "Usage: %s [options] [FILE]\n", os.Args[0]) + "Usage: %s [options] FILE.meta4 [FILE]\n", os.Args[0]) flag.PrintDefaults() fmt.Fprint(flag.CommandLine.Output(), ` If FILE is not specified, then list all files of .meta4. @@ -51,9 +50,13 @@ Otherwise list all URLs of the given FILE. return } + if flag.NArg() < 1 { + flag.Usage() + os.Exit(1) + } var meta meta4ra.Metalink { - data, err := os.ReadFile(*metaPath) + data, err := os.ReadFile(flag.Arg(0)) if err != nil { log.Fatal(err) } @@ -65,7 +68,7 @@ Otherwise list all URLs of the given FILE. bad := false for _, f := range meta.Files { - if flag.NArg() == 0 { + if flag.NArg() == 1 { for _, sig := range f.Signature { if !*doSig { continue @@ -91,7 +94,7 @@ Otherwise list all URLs of the given FILE. } fmt.Println(f.Name) } else { - if f.Name != flag.Arg(0) { + if f.Name != flag.Arg(1) { continue } if *doSize { @@ -99,7 +102,7 @@ Otherwise list all URLs of the given FILE. break } for _, u := range f.URLs { - fmt.Printf("%d|%s|%s\n", u.Priority, u.Location, u.URL) + fmt.Println(u.String()) } break } -- 2.52.0