package config import ( "fmt" "os" "strings" ) var ShowErr = false var Use = false var Temp = false var Mem = false var MemPerc = false var Power = false var Freq = false var MemFreq = false var Fan = false func init() { help := false all := func() { Use = true Temp = true Mem = true MemPerc = true Power = true Freq = true MemFreq = true Fan = true } for _, arg := range os.Args[1:] { if strings.HasPrefix(arg, "--") { switch arg { case "--show-err": ShowErr = true case "--help": help = true case "--all": all() } } else if strings.HasPrefix(arg, "-") { for _, c := range arg[1:] { switch c { case '?', 'h': help = true case 'e': ShowErr = true case 'a': all() case 'u': Use = true case 't': Temp = true case 'm': Mem = true case 'p': Power = true case 'f': Freq = true case 'M': MemFreq = true case 'F': Fan = true case '%': MemPerc = true } } continue } } if help { fmt.Printf(helpMenu, os.Args[0]) os.Exit(0) } if !(Use || Temp || Mem || MemPerc || Power || Freq || MemFreq || Fan) { Use = true Temp = true MemPerc = true } } var helpMenu = `Usage: %s [options] A utility to query AMD GPU statistics. Options: -h, --help Show this help message and exit -e, --err Show error messages -a, --all Show all statistics -u Show GPU utilization -f Show GPU core frequency -t Show GPU temperature -m Show GPU memory usage -% Show GPU memory usage percentage -M Show GPU memory frequency -p Show GPU power consumption -F Show GPU fan speed If no options are given, -ut% are assumed. `