10 "github.com/anacrolix/tagflag"
11 "github.com/bradfitz/iter"
13 "github.com/anacrolix/torrent/metainfo"
26 for _, filename := range flags.TorrentFiles {
27 metainfo, err := metainfo.LoadFromFile(filename)
32 info := &metainfo.Info.Info
34 fmt.Printf("%s\n", metainfo.Info.Name)
37 d := map[string]interface{}{
39 "NumPieces": info.NumPieces(),
40 "PieceLength": info.PieceLength,
41 "InfoHash": metainfo.Info.Hash.HexString(),
42 "NumFiles": len(info.UpvertedFiles()),
43 "TotalLength": info.TotalLength(),
46 d["Files"] = info.Files
48 if flags.PieceHashes {
49 d["PieceHashes"] = func() (ret []string) {
50 for i := range iter.N(info.NumPieces()) {
51 ret = append(ret, hex.EncodeToString(info.Pieces[i*20:(i+1)*20]))
56 b, _ := json.MarshalIndent(d, "", " ")
60 os.Stdout.WriteString("\n")