From 2d4783856dffafc91b9aa007c3dd922dea12599b Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Thu, 13 Apr 2023 18:06:48 +0300 Subject: [PATCH] Ability to feed data to stdin --- cmd/meta4-create/main.go | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/cmd/meta4-create/main.go b/cmd/meta4-create/main.go index 2c3a5ff..ea0a776 100644 --- a/cmd/meta4-create/main.go +++ b/cmd/meta4-create/main.go @@ -29,7 +29,6 @@ import ( "io" "log" "os" - "path/filepath" "sync" "time" @@ -86,34 +85,31 @@ func (h *MultiHasher) Write(p []byte) (n int, err error) { } func main() { - file := flag.String("file", "", "Path to file") + fn := flag.String("fn", "", "Filename") mtime := flag.String("mtime", "", "Take that file's mtime as a Published date") desc := flag.String("desc", "", "Description") sig := flag.String("sig", "", "Path to signature file") torrent := flag.String("torrent", "", "Torrent URL") log.SetFlags(log.Lshortfile) flag.Parse() + if *fn == "" { + log.Fatalln("empty -fn") + } urls := make([]meta4ra.URL, 0, len(flag.Args())) for _, u := range flag.Args() { urls = append(urls, meta4ra.URL{URL: u}) } - fd, err := os.Open(*file) - if err != nil { - log.Fatalln(err) - } - fi, err := fd.Stat() - if err != nil { - log.Fatalln(err) - } + br := bufio.NewReaderSize(os.Stdin, 1<<20) buf := make([]byte, 1<<20) h := NewMultiHasher() - if _, err = io.CopyBuffer(h, bufio.NewReader(fd), buf); err != nil { + size, err := io.CopyBuffer(h, br, buf) + if err != nil { log.Fatalln(err) } f := meta4ra.File{ - Name: filepath.Base(*file), + Name: *fn, Description: *desc, - Size: uint64(fi.Size()), + Size: uint64(size), URLs: urls, Hashes: []meta4ra.Hash{ {Type: meta4ra.HashSHA256, Hash: hex.EncodeToString(h.sha256h.Sum(nil))}, -- 2.44.0