From: Matt Joiner Date: Tue, 5 Jun 2018 14:40:03 +0000 (+1000) Subject: cmd/torrent: Add -stats flag X-Git-Tag: v1.0.0~133 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=37fc800cb1036a108fd840ba4d8f86b1a43a7cfb;p=btrtrc.git cmd/torrent: Add -stats flag Requires updated tagflag package. --- diff --git a/cmd/torrent/main.go b/cmd/torrent/main.go index 2421412b..1d9b4944 100644 --- a/cmd/torrent/main.go +++ b/cmd/torrent/main.go @@ -130,6 +130,7 @@ var flags = struct { DownloadRate tagflag.Bytes `help:"max bytes per second down from peers"` Debug bool PackedBlocklist string + Stats *bool tagflag.StartPos Torrent []string `arity:"+" help:"torrent file path or magnet uri"` }{ @@ -143,9 +144,17 @@ func stdoutAndStderrAreSameFile() bool { return os.SameFile(fi1, fi2) } +func statsEnabled() bool { + if flags.Stats == nil { + return flags.Debug + } + return *flags.Stats +} + func main() { log.SetFlags(log.LstdFlags | log.Lshortfile) tagflag.Parse(&flags) + defer envpprof.Stop() clientConfig := torrent.Config{ Debug: flags.Debug, Seed: flags.Seed, @@ -193,10 +202,18 @@ func main() { log.Fatal("y u no complete torrents?!") } if flags.Seed { + outputStats(client) select {} } + outputStats(client) +} + +func outputStats(cl *torrent.Client) { + if !statsEnabled() { + return + } expvar.Do(func(kv expvar.KeyValue) { fmt.Printf("%s: %s\n", kv.Key, kv.Value) }) - envpprof.Stop() + cl.WriteStatus(os.Stdout) }