func main() { flag.Usage = usage flag.Parse() if *createTorrent != "" { err := torrent.WriteMetaInfoBytes(*createTorrent, os.Stdout) if err != nil { log.Fatal("Could not create torrent file:", err) } return } if *createTracker != "" { err := startTracker(*createTracker, flag.Args()) if err != nil { log.Fatal("Tracker returned error:", err) } return } args := flag.Args() narg := flag.NArg() if narg != 1 { if narg < 1 { log.Println("Too few arguments. Torrent file or torrent URL required.") } else { log.Printf("Too many arguments. (Expected 1): %v", args) } usage() } torrentFlags := parseTorrentFlags() if *cpuprofile != "" { cpuf, err := os.Create(*cpuprofile) if err != nil { log.Fatal(err) } pprof.StartCPUProfile(cpuf) defer pprof.StopCPUProfile() } if *memprofile != "" { defer func(file string) { memf, err := os.Create(file) if err != nil { log.Fatal(err) } pprof.WriteHeapProfile(memf) }(*memprofile) } log.Println("Starting.") err := torrent.RunTorrents(torrentFlags, args) if err != nil { log.Fatal("Could not run torrents", args, err) } }
func main() { flag.Usage = usage flag.Parse() if *createTorrent != "" { err := torrent.WriteMetaInfoBytes(*createTorrent, *createTracker, os.Stdout) if err != nil { log.Fatal("Could not create torrent file:", err) } return } if *createTracker != "" { err := startTracker(*createTracker, flag.Args()) if err != nil { log.Fatal("Tracker returned error:", err) } return } args := flag.Args() narg := flag.NArg() if narg < 1 { log.Println("Too few arguments. Torrent file or torrent URL required.") usage() } torrentFlags, err := parseTorrentFlags() if err != nil { log.Fatal("Could not parse flags:", err) } if *cpuprofile != "" { cpuf, err := os.Create(*cpuprofile) if err != nil { log.Fatal(err) } pprof.StartCPUProfile(cpuf) defer pprof.StopCPUProfile() } if *memprofile != "" { defer func(file string) { memf, err := os.Create(file) if err != nil { log.Fatal(err) } pprof.WriteHeapProfile(memf) }(*memprofile) } if (*memoryPerTorrent) >= 0 { //User is worried about memory use. debug.SetGCPercent(20) //Set the GC to clear memory more often. } log.Println("Starting.") err = torrent.RunTorrents(torrentFlags, args) if err != nil { log.Fatal("Could not run torrents", args, err) } }