Fixes the directory structure.
This commit is contained in:
parent
4bfe0251a8
commit
7e5c0c969c
|
@ -1,5 +1,3 @@
|
||||||
### **NO LONGER MAINTAINED.** Future development has moved to [ytop](https://github.com/cjbassi/ytop), a Rust port of gotop.
|
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
<a href="./assets/logo">
|
<a href="./assets/logo">
|
||||||
|
@ -116,6 +114,8 @@ To make a custom colorscheme, check out the [template](./colorschemes/template.g
|
||||||
`-s`, `--statusbar` Show a statusbar with the time.
|
`-s`, `--statusbar` Show a statusbar with the time.
|
||||||
`-b`, `--battery` Show battery level widget (`minimal` turns off). [preview](./assets/screenshots/battery.png)
|
`-b`, `--battery` Show battery level widget (`minimal` turns off). [preview](./assets/screenshots/battery.png)
|
||||||
`-i`, `--interface=NAME` Select network interface [default: all].
|
`-i`, `--interface=NAME` Select network interface [default: all].
|
||||||
|
`-l`, `--layout=NAME` Choose a layout from definitions in the \$XDG_CONFIG_HOME/gotop directory
|
||||||
|
`--layout-file=NAME` Provide a path to a layout file to use (useful for mucking about with layouts)
|
||||||
|
|
||||||
## Built With
|
## Built With
|
||||||
|
|
||||||
|
|
|
@ -17,12 +17,12 @@ import (
|
||||||
docopt "github.com/docopt/docopt.go"
|
docopt "github.com/docopt/docopt.go"
|
||||||
ui "github.com/gizak/termui/v3"
|
ui "github.com/gizak/termui/v3"
|
||||||
|
|
||||||
|
"github.com/cjbassi/gotop"
|
||||||
"github.com/cjbassi/gotop/colorschemes"
|
"github.com/cjbassi/gotop/colorschemes"
|
||||||
"github.com/cjbassi/gotop/src/config"
|
"github.com/cjbassi/gotop/layout"
|
||||||
"github.com/cjbassi/gotop/src/layout"
|
"github.com/cjbassi/gotop/logging"
|
||||||
"github.com/cjbassi/gotop/src/logging"
|
"github.com/cjbassi/gotop/utils"
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
w "github.com/cjbassi/gotop/widgets"
|
||||||
w "github.com/cjbassi/gotop/src/widgets"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -34,14 +34,14 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
conf config.Config
|
conf gotop.Config
|
||||||
help *w.HelpMenu
|
help *w.HelpMenu
|
||||||
bar *w.StatusBar
|
bar *w.StatusBar
|
||||||
statusbar bool
|
statusbar bool
|
||||||
stderrLogger = log.New(os.Stderr, "", 0)
|
stderrLogger = log.New(os.Stderr, "", 0)
|
||||||
)
|
)
|
||||||
|
|
||||||
func parseArgs() (config.Config, error) {
|
func parseArgs() (gotop.Config, error) {
|
||||||
usage := `
|
usage := `
|
||||||
Usage: gotop [options]
|
Usage: gotop [options]
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ Colorschemes:
|
||||||
|
|
||||||
ld := utils.GetLogDir(appName)
|
ld := utils.GetLogDir(appName)
|
||||||
cd := utils.GetConfigDir(appName)
|
cd := utils.GetConfigDir(appName)
|
||||||
conf = config.Config{
|
conf = gotop.Config{
|
||||||
ConfigDir: cd,
|
ConfigDir: cd,
|
||||||
LogDir: ld,
|
LogDir: ld,
|
||||||
LogPath: filepath.Join(ld, "errors.log"),
|
LogPath: filepath.Join(ld, "errors.log"),
|
||||||
|
@ -164,7 +164,7 @@ func handleColorscheme(c string) (colorschemes.Colorscheme, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// getCustomColorscheme tries to read a custom json colorscheme from <configDir>/<name>.json
|
// getCustomColorscheme tries to read a custom json colorscheme from <configDir>/<name>.json
|
||||||
func getCustomColorscheme(c config.Config, name string) (colorschemes.Colorscheme, error) {
|
func getCustomColorscheme(c gotop.Config, name string) (colorschemes.Colorscheme, error) {
|
||||||
var cs colorschemes.Colorscheme
|
var cs colorschemes.Colorscheme
|
||||||
filePath := filepath.Join(c.ConfigDir, name+".json")
|
filePath := filepath.Join(c.ConfigDir, name+".json")
|
||||||
dat, err := ioutil.ReadFile(filePath)
|
dat, err := ioutil.ReadFile(filePath)
|
||||||
|
@ -178,13 +178,13 @@ func getCustomColorscheme(c config.Config, name string) (colorschemes.Colorschem
|
||||||
return cs, nil
|
return cs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func setDefaultTermuiColors(c config.Config) {
|
func setDefaultTermuiColors(c gotop.Config) {
|
||||||
ui.Theme.Default = ui.NewStyle(ui.Color(c.Colorscheme.Fg), ui.Color(c.Colorscheme.Bg))
|
ui.Theme.Default = ui.NewStyle(ui.Color(c.Colorscheme.Fg), ui.Color(c.Colorscheme.Bg))
|
||||||
ui.Theme.Block.Title = ui.NewStyle(ui.Color(c.Colorscheme.BorderLabel), ui.Color(c.Colorscheme.Bg))
|
ui.Theme.Block.Title = ui.NewStyle(ui.Color(c.Colorscheme.BorderLabel), ui.Color(c.Colorscheme.Bg))
|
||||||
ui.Theme.Block.Border = ui.NewStyle(ui.Color(c.Colorscheme.BorderLine), ui.Color(c.Colorscheme.Bg))
|
ui.Theme.Block.Border = ui.NewStyle(ui.Color(c.Colorscheme.BorderLine), ui.Color(c.Colorscheme.Bg))
|
||||||
}
|
}
|
||||||
|
|
||||||
func eventLoop(c config.Config, grid *layout.MyGrid) {
|
func eventLoop(c gotop.Config, grid *layout.MyGrid) {
|
||||||
drawTicker := time.NewTicker(c.UpdateInterval).C
|
drawTicker := time.NewTicker(c.UpdateInterval).C
|
||||||
|
|
||||||
// handles kill signal sent to gotop
|
// handles kill signal sent to gotop
|
||||||
|
@ -341,7 +341,7 @@ func eventLoop(c config.Config, grid *layout.MyGrid) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupLogfile(c config.Config) (*os.File, error) {
|
func setupLogfile(c gotop.Config) (*os.File, error) {
|
||||||
// create the log directory
|
// create the log directory
|
||||||
if err := os.MkdirAll(c.LogDir, 0755); err != nil {
|
if err := os.MkdirAll(c.LogDir, 0755); err != nil {
|
||||||
return nil, fmt.Errorf("failed to make the log directory: %v", err)
|
return nil, fmt.Errorf("failed to make the log directory: %v", err)
|
|
@ -1,10 +1,10 @@
|
||||||
package config
|
package gotop
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/cjbassi/gotop/colorschemes"
|
"github.com/cjbassi/gotop/colorschemes"
|
||||||
"github.com/cjbassi/gotop/src/widgets"
|
"github.com/cjbassi/gotop/widgets"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
|
@ -5,8 +5,9 @@ import (
|
||||||
"log"
|
"log"
|
||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
"github.com/cjbassi/gotop/src/config"
|
"github.com/cjbassi/gotop"
|
||||||
"github.com/cjbassi/gotop/src/widgets"
|
"github.com/cjbassi/gotop/widgets"
|
||||||
|
|
||||||
ui "github.com/gizak/termui/v3"
|
ui "github.com/gizak/termui/v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -28,7 +29,7 @@ type MyGrid struct {
|
||||||
|
|
||||||
var widgetNames []string = []string{"cpu", "disk", "mem", "temp", "net", "procs", "batt"}
|
var widgetNames []string = []string{"cpu", "disk", "mem", "temp", "net", "procs", "batt"}
|
||||||
|
|
||||||
func Layout(wl layout, c config.Config) (*MyGrid, error) {
|
func Layout(wl layout, c gotop.Config) (*MyGrid, error) {
|
||||||
rowDefs := wl.Rows
|
rowDefs := wl.Rows
|
||||||
uiRows := make([]ui.GridItem, 0)
|
uiRows := make([]ui.GridItem, 0)
|
||||||
numRows := countNumRows(wl.Rows)
|
numRows := countNumRows(wl.Rows)
|
||||||
|
@ -57,7 +58,7 @@ func Layout(wl layout, c config.Config) (*MyGrid, error) {
|
||||||
// if there's a row span widget in the row; in this case, it'll consume as many
|
// if there's a row span widget in the row; in this case, it'll consume as many
|
||||||
// rows as the largest row span object in the row, and produce an uber-row
|
// rows as the largest row span object in the row, and produce an uber-row
|
||||||
// containing all that stuff. It returns a slice without the consumed elements.
|
// containing all that stuff. It returns a slice without the consumed elements.
|
||||||
func processRow(c config.Config, numRows int, rowDefs [][]widgetRule) (ui.GridItem, [][]widgetRule) {
|
func processRow(c gotop.Config, numRows int, rowDefs [][]widgetRule) (ui.GridItem, [][]widgetRule) {
|
||||||
// Recursive function #3. See the comment in deepFindProc.
|
// Recursive function #3. See the comment in deepFindProc.
|
||||||
if len(rowDefs) < 1 {
|
if len(rowDefs) < 1 {
|
||||||
return ui.GridItem{}, [][]widgetRule{}
|
return ui.GridItem{}, [][]widgetRule{}
|
||||||
|
@ -104,7 +105,7 @@ func processRow(c config.Config, numRows int, rowDefs [][]widgetRule) (ui.GridIt
|
||||||
return ui.NewRow(1.0/float64(numRows), uiColumns...), rowDefs
|
return ui.NewRow(1.0/float64(numRows), uiColumns...), rowDefs
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeWidget(c config.Config, widRule widgetRule) interface{} {
|
func makeWidget(c gotop.Config, widRule widgetRule) interface{} {
|
||||||
var w interface{}
|
var w interface{}
|
||||||
switch widRule.Widget {
|
switch widRule.Widget {
|
||||||
case "cpu":
|
case "cpu":
|
|
@ -4,7 +4,7 @@ import (
|
||||||
"image"
|
"image"
|
||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
drawille "github.com/cjbassi/gotop/src/termui/drawille-go"
|
drawille "github.com/cjbassi/gotop/termui/drawille-go"
|
||||||
. "github.com/gizak/termui/v3"
|
. "github.com/gizak/termui/v3"
|
||||||
)
|
)
|
||||||
|
|
|
@ -9,7 +9,7 @@ import (
|
||||||
|
|
||||||
"github.com/distatus/battery"
|
"github.com/distatus/battery"
|
||||||
|
|
||||||
ui "github.com/cjbassi/gotop/src/termui"
|
ui "github.com/cjbassi/gotop/termui"
|
||||||
)
|
)
|
||||||
|
|
||||||
type BatteryWidget struct {
|
type BatteryWidget struct {
|
|
@ -8,7 +8,7 @@ import (
|
||||||
|
|
||||||
psCpu "github.com/shirou/gopsutil/cpu"
|
psCpu "github.com/shirou/gopsutil/cpu"
|
||||||
|
|
||||||
ui "github.com/cjbassi/gotop/src/termui"
|
ui "github.com/cjbassi/gotop/termui"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CpuWidget struct {
|
type CpuWidget struct {
|
|
@ -9,8 +9,8 @@ import (
|
||||||
|
|
||||||
psDisk "github.com/shirou/gopsutil/disk"
|
psDisk "github.com/shirou/gopsutil/disk"
|
||||||
|
|
||||||
ui "github.com/cjbassi/gotop/src/termui"
|
ui "github.com/cjbassi/gotop/termui"
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Partition struct {
|
type Partition struct {
|
|
@ -7,8 +7,8 @@ import (
|
||||||
|
|
||||||
psMem "github.com/shirou/gopsutil/mem"
|
psMem "github.com/shirou/gopsutil/mem"
|
||||||
|
|
||||||
ui "github.com/cjbassi/gotop/src/termui"
|
ui "github.com/cjbassi/gotop/termui"
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type MemWidget struct {
|
type MemWidget struct {
|
|
@ -7,7 +7,7 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func convert(s []string) (MemoryInfo, error) {
|
func convert(s []string) (MemoryInfo, error) {
|
|
@ -7,8 +7,8 @@ import (
|
||||||
|
|
||||||
psNet "github.com/shirou/gopsutil/net"
|
psNet "github.com/shirou/gopsutil/net"
|
||||||
|
|
||||||
ui "github.com/cjbassi/gotop/src/termui"
|
ui "github.com/cjbassi/gotop/termui"
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
|
@ -10,8 +10,8 @@ import (
|
||||||
|
|
||||||
psCPU "github.com/shirou/gopsutil/cpu"
|
psCPU "github.com/shirou/gopsutil/cpu"
|
||||||
|
|
||||||
ui "github.com/cjbassi/gotop/src/termui"
|
ui "github.com/cjbassi/gotop/termui"
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type processList struct {
|
type processList struct {
|
|
@ -9,7 +9,7 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
|
@ -8,7 +8,7 @@ import (
|
||||||
|
|
||||||
ui "github.com/gizak/termui/v3"
|
ui "github.com/gizak/termui/v3"
|
||||||
|
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TempScale int
|
type TempScale int
|
|
@ -6,7 +6,7 @@ import "C"
|
||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TemperatureStat struct {
|
type TemperatureStat struct {
|
|
@ -7,7 +7,7 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
var sensorOIDS = map[string]string{
|
var sensorOIDS = map[string]string{
|
|
@ -6,7 +6,7 @@ import (
|
||||||
|
|
||||||
psHost "github.com/shirou/gopsutil/host"
|
psHost "github.com/shirou/gopsutil/host"
|
||||||
|
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (self *TempWidget) update() {
|
func (self *TempWidget) update() {
|
|
@ -12,7 +12,7 @@ import (
|
||||||
"syscall"
|
"syscall"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
|
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (self *TempWidget) getTemp(mib []C.int, mlen int, snsrdev *C.struct_sensordev, index int) {
|
func (self *TempWidget) getTemp(mib []C.int, mlen int, snsrdev *C.struct_sensordev, index int) {
|
|
@ -5,7 +5,7 @@ import (
|
||||||
|
|
||||||
psHost "github.com/shirou/gopsutil/host"
|
psHost "github.com/shirou/gopsutil/host"
|
||||||
|
|
||||||
"github.com/cjbassi/gotop/src/utils"
|
"github.com/cjbassi/gotop/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (self *TempWidget) update() {
|
func (self *TempWidget) update() {
|
Loading…
Reference in New Issue
Block a user