github.com/fozzysec/SiaPrime@v0.0.0-20190612043147-66c8e8d11fe3/cmd/spc/stratumminer.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/spf13/cobra" 8 ) 9 10 var ( 11 stratumminerCmd = &cobra.Command{ 12 Use: "stratum-miner", 13 Short: "Perform stratum miner actions", 14 Long: "Perform stratum miner actions and view miner status.", 15 Run: wrap(stratumminercmd), 16 } 17 stratumminerStartCmd = &cobra.Command{ 18 Use: "start [server] [username]", 19 Short: "Start stratum mining to server using username", 20 Long: "Start stratum mining to server using username, if the miner is already running, this command does nothing", 21 Run: stratumminerstartcmd, 22 } 23 24 stratumminerStopCmd = &cobra.Command{ 25 Use: "stop", 26 Short: "Stop stratum mining", 27 Long: "Stop stratum mining (this may take a few moments).", 28 Run: wrap(stratumminerstopcmd), 29 } 30 ) 31 32 // minerstartcmd is the handler for the command `siac stratum-miner start`. 33 // Starts the stratum miner. 34 func stratumminerstartcmd(cmd *cobra.Command, args []string) { 35 var err error 36 switch len(args) { 37 case 2: 38 err = httpClient.StratumMinerStartPost(args[0], args[1]) 39 default: 40 cmd.UsageFunc()(cmd) 41 os.Exit(exitCodeUsage) 42 } 43 if err != nil { 44 die("Could not start stratum miner:", err) 45 } 46 fmt.Println("Stratum miner is now running.") 47 } 48 49 // stratumminerstopcmd is the handler for the command `siac stratum-miner stop`. 50 // Stops the stratum miner. 51 func stratumminerstopcmd() { 52 err := httpClient.StratumMinerStopPost() 53 if err != nil { 54 die("Could not stop stratum miner:", err) 55 } 56 fmt.Println("Stopped mining.") 57 } 58 59 // stratumminercmd is the handler for the command `siac stratum-miner`. 60 // Prints the status of the stratum miner. 61 func stratumminercmd() { 62 status, err := httpClient.StratumMinerGet() 63 if err != nil { 64 die("Could not get stratum miner status:", err) 65 } 66 67 miningStr := "off" 68 if status.Mining { 69 miningStr = "on" 70 } 71 fmt.Printf(`Miner status: 72 Mining: %s 73 Hashrate: %v KH/s 74 Submissions: %v 75 `, miningStr, status.Hashrate/1000, status.Submissions) 76 }