]> Sergey Matveev's repositories - meta4ra.git/blobdiff - cmd/meta4-create/main.go
Ability to feed data to stdin
[meta4ra.git] / cmd / meta4-create / main.go
index 2c3a5ff0aaeae8d7500c5180569c95e5d940c66c..ea0a776086014ce50817dc0431742e4e1b8ee942 100644 (file)
@@ -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))},