summaryrefslogtreecommitdiff
path: root/gstat/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'gstat/main.go')
-rw-r--r--gstat/main.go28
1 files changed, 18 insertions, 10 deletions
diff --git a/gstat/main.go b/gstat/main.go
index ed28444..0e29e70 100644
--- a/gstat/main.go
+++ b/gstat/main.go
@@ -4,6 +4,7 @@ package main
import (
"container/list"
+ "errors"
"flag"
"fmt"
"github.com/buetow/gstat/diskstats"
@@ -133,21 +134,28 @@ func printP(sortedP *list.List) {
}
}
-func receiveP(pRxChan <-chan process.Process) {
- lastP := make(mapP)
- flag := false
-
- var readKey, writeKey, modeName string
-
+func modeNames() (string, string, string, error) {
switch *config.mode {
case 0:
- readKey, writeKey, modeName = "read_bytes", "write_bytes", "bytes"
+ return "read_bytes", "write_bytes", "bytes", nil
case 1:
- readKey, writeKey, modeName = "syscr", "syscw", "syscalls"
+ return "syscr", "syscw", "syscalls", nil
case 2:
- readKey, writeKey, modeName = "rchar", "wchar", "chars"
+ return "rchar", "wchar", "chars", nil
}
+ errstr := fmt.Sprintf("No such mode: %d\n", *config.mode)
+ return "", "", "", errors.New(errstr)
+}
+
+func receiveP(pRxChan <-chan process.Process) {
+ lastP := make(mapP)
+ flag := false
+
+ readKey, writeKey, modeName, err := modeNames()
+ if err != nil {
+ log.Fatal(err)
+ }
config.modeName = modeName
makeDiff := func(first, second process.Process) twoP {
@@ -218,7 +226,7 @@ func main() {
tChan <- false
fmt.Println("Good bye! This was:")
fmt.Println(config.banner)
- os.Exit(1)
+ os.Exit(0)
}()
for {