1 // meta4ra -- Metalink 4.0 utilities
2 // Copyright (C) 2021-2024 Sergey Matveev <stargrave@stargrave.org>
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, version 3 of the License.
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
13 // You should have received a copy of the GNU General Public License
14 // along with this program. If not, see <http://www.gnu.org/licenses/>.
27 meta4ra "go.stargrave.org/meta4ra/internal"
31 hashes := flag.String("hashes", meta4ra.HashesDefault,
32 "hash-name:commandline[,...]")
34 fmt.Fprintf(flag.CommandLine.Output(),
35 "Usage: %s [-hashes ...] < data | read hash name\n", os.Args[0])
37 fmt.Fprint(flag.CommandLine.Output(), `
38 Only the first hash from -hashes will be used.
44 fmt.Println(meta4ra.Version())
48 fmt.Println(meta4ra.Warranty)
53 if i := strings.Index(hsh, ","); i != -1 {
56 hasher, err := meta4ra.NewHasher(hsh)
60 if err = hasher.Start(); err != nil {
63 if _, err = io.Copy(hasher, bufio.NewReaderSize(
64 os.Stdin, meta4ra.BufLen)); err != nil {
67 sums, err := hasher.Sums()
71 fmt.Println(sums[0].Hash, sums[0].Type)