summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaleb Bassi <calebjbassi@gmail.com>2019-05-15 17:19:44 -0700
committerGitHub <noreply@github.com>2019-05-15 17:19:44 -0700
commitf6994e843dd00a873f36e60dee9eb9944c69431f (patch)
tree71ca8beb012bcc5915c507a43af76df87ad66e3f
parentd734634a5d364715f773ec0aa9c0198c4a760f22 (diff)
parentd5f2fef5dd1bed58137578ce5b4d9d6e859e6c3b (diff)
Merge pull request #144 from mattLLVW/feature/network_interface
select network interface
-rw-r--r--README.md1
-rw-r--r--main.go5
-rw-r--r--src/widgets/net.go13
3 files changed, 15 insertions, 4 deletions
diff --git a/README.md b/README.md
index c93f38b..acfab32 100644
--- a/README.md
+++ b/README.md
@@ -111,6 +111,7 @@ To make a custom colorscheme, check out the [template](./colorschemes/template.g
`-a`, `--averagecpu` Show average CPU in the CPU widget.
`-s`, `--statusbar` Show a statusbar with the time.
`-b`, `--battery` Show battery level widget (`minimal` turns off). [preview](./assets/battery.png)
+`-i`, `--interface=NAME` Select network interface [default: all].
## Credits
diff --git a/main.go b/main.go
index 4e9352f..4ed0231 100644
--- a/main.go
+++ b/main.go
@@ -47,6 +47,7 @@ var (
tempScale = w.Celcius
battery = false
statusbar = false
+ netInterface = "all"
cpu *w.CpuWidget
batt *w.BatteryWidget
@@ -75,6 +76,7 @@ Options:
-f, --fahrenheit Show temperatures in fahrenheit.
-s, --statusbar Show a statusbar with the time.
-b, --battery Show battery level widget ('minimal' turns off).
+ -i, --interface=NAME Select network interface [default: all].
Colorschemes:
default
@@ -116,6 +118,7 @@ Colorschemes:
if fahrenheit {
tempScale = w.Fahrenheit
}
+ netInterface, _ = args["--interface"].(string)
return nil
}
@@ -261,7 +264,7 @@ func initWidgets() {
if battery {
batt = w.NewBatteryWidget(graphHorizontalScale)
}
- net = w.NewNetWidget()
+ net = w.NewNetWidget(netInterface)
disk = w.NewDiskWidget()
temp = w.NewTempWidget(tempScale)
}
diff --git a/src/widgets/net.go b/src/widgets/net.go
index 89def2a..b4b4a34 100644
--- a/src/widgets/net.go
+++ b/src/widgets/net.go
@@ -11,6 +11,8 @@ import (
"github.com/cjbassi/gotop/src/utils"
)
+type NetInterface string
+
type NetWidget struct {
*ui.SparklineGroup
updateInterval time.Duration
@@ -18,9 +20,10 @@ type NetWidget struct {
// used to calculate recent network activity
totalBytesRecv uint64
totalBytesSent uint64
+ NetInterface string
}
-func NewNetWidget() *NetWidget {
+func NewNetWidget(netInterface string) *NetWidget {
recvSparkline := ui.NewSparkline()
recvSparkline.Data = []int{}
@@ -31,8 +34,12 @@ func NewNetWidget() *NetWidget {
self := &NetWidget{
SparklineGroup: spark,
updateInterval: time.Second,
+ NetInterface: netInterface,
}
self.Title = " Network Usage "
+ if netInterface != "all" {
+ self.Title = fmt.Sprintf(" Network Usage: %s ", netInterface)
+ }
self.update()
@@ -57,8 +64,8 @@ func (self *NetWidget) update() {
var totalBytesRecv uint64
var totalBytesSent uint64
for _, _interface := range interfaces {
- // ignore VPN interface
- if _interface.Name != "tun0" {
+ // ignore VPN interface or filter interface by name
+ if (_interface.Name != "tun0" && self.NetInterface == "all") || (_interface.Name == self.NetInterface) {
totalBytesRecv += _interface.BytesRecv
totalBytesSent += _interface.BytesSent
}