diff options
author | Sean E. Russell <ser@ser1.net> | 2022-02-08 16:50:30 -0600 |
---|---|---|
committer | Sean E. Russell <ser@ser1.net> | 2022-02-09 13:18:39 -0600 |
commit | 66047ad64cf9211da7940d3c73b5811766591124 (patch) | |
tree | 6e7366c0f74aed10006198f1619cd27457be6fed /devices | |
parent | 7b8bf412b1c832ef5702c933ce21e03b8fad201a (diff) |
Fixes #158, adding a man page. This replaces the flags library in the process. It also changes some of the new no- flags.
Diffstat (limited to 'devices')
-rw-r--r-- | devices/remote.go | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/devices/remote.go b/devices/remote.go index 555df3e..9eadf13 100644 --- a/devices/remote.go +++ b/devices/remote.go @@ -10,11 +10,12 @@ import ( "sync" "time" - "github.com/xxxserxxx/opflag" + "github.com/droundy/goopt" ) -var name string -var remote_url string +var nameP *string +var remoteUrlP *string +var sleepP *string var sleep time.Duration var remoteLock sync.Mutex @@ -26,9 +27,9 @@ var remoteLock sync.Mutex // FIXME high CPU use when remote goes offline // FIXME higher CPU use when using remote in general func init() { - opflag.StringVarP(&name, "remote-name", "", "", "Remote: name of remote gotop") - opflag.StringVarP(&remote_url, "remote-url", "", "", "Remote: URL of remote gotop") - opflag.DurationVarP(&sleep, "remote-refresh", "", 0, "Remote: Frequency to refresh data, in seconds") + nameP = goopt.String([]string{"--remote-name"}, "", "Remote: name of remote gotop") + remoteUrlP = goopt.String([]string{"--remote-url"}, "", "Remote: URL of remote gotop") + sleepP = goopt.String([]string{"--remote-refresh"}, "", "Remote: Frequency to refresh data, in seconds") RegisterStartup(startup) } @@ -47,27 +48,34 @@ func startup(vars map[string]string) error { remoteLock = sync.Mutex{} remotes := parseConfig(vars) - // Don't set anything up if there's nothing to do - if (name == "" || remote_url == "") && len(remotes) == 0 { - return nil - } - if remote_url != "" { + + if remoteUrlP != nil && *remoteUrlP != "" { + var name string r := Remote{ - url: remote_url, - refresh: 2 * time.Second, + url: *remoteUrlP, + refresh: 5 * time.Second, } - if name == "" { + if nameP == nil && *nameP != "" { + name = *nameP + } else { name = "Remote" } - if sleep != 0 { - r.refresh = sleep + if sleepP == nil && *sleepP != "" { + sleep, err := time.ParseDuration(*sleepP) + if err == nil { + r.refresh = sleep + } else { + log.Printf("invalid refresh duration %s for %s; using default", *sleepP, *remoteUrlP) + } } remotes[name] = r } + if len(remotes) == 0 { log.Println("Remote: no remote URL provided; disabling extension") return nil } + RegisterTemp(updateTemp) RegisterMem(updateMem) RegisterCPU(updateUsage) @@ -83,7 +91,6 @@ func startup(vars map[string]string) error { w := &sync.WaitGroup{} for n, r := range remotes { n = n + "-" - r.url = r.url var u *url.URL w.Add(1) go func(name string, remote Remote, wg *sync.WaitGroup) { @@ -232,7 +239,6 @@ func updateUsage(cpus map[string]int, _ bool) map[string]error { func parseConfig(vars map[string]string) map[string]Remote { rv := make(map[string]Remote) - log.Printf("VARS = %s", vars) for key, value := range vars { if strings.HasPrefix(key, "remote-") { parts := strings.Split(key, "-") |