mirror of
https://github.com/bcicen/ctop.git
synced 2025-11-14 07:05:40 +01:00
update config with get, gettoggle methods
This commit is contained in:
@@ -7,12 +7,36 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
Global = NewDefaultConfig()
|
||||
log = logging.Init()
|
||||
configChan = make(chan ConfigMsg)
|
||||
Global = NewDefaultConfig()
|
||||
log = logging.Init()
|
||||
)
|
||||
|
||||
type Config map[string]string
|
||||
type Config struct {
|
||||
params map[string]string
|
||||
toggles map[string]bool
|
||||
updates chan ConfigMsg
|
||||
}
|
||||
|
||||
// Return param value
|
||||
func Get(k string) string {
|
||||
if _, ok := Global.params[k]; ok == true {
|
||||
return Global.params[k]
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// Return toggle value
|
||||
func GetToggle(k string) bool {
|
||||
if _, ok := Global.toggles[k]; ok == true {
|
||||
return Global.toggles[k]
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Toggle a boolean option
|
||||
func Toggle(k string) {
|
||||
Global.toggles[k] = Global.toggles[k] != true
|
||||
}
|
||||
|
||||
type ConfigMsg struct {
|
||||
key string
|
||||
@@ -21,16 +45,7 @@ type ConfigMsg struct {
|
||||
|
||||
func Update(k, v string) {
|
||||
log.Noticef("config update: %s = %s", k, v)
|
||||
configChan <- ConfigMsg{k, v}
|
||||
}
|
||||
|
||||
// Toggle a boolean option
|
||||
func Toggle(k string) {
|
||||
if Global[k] == "0" {
|
||||
Global[k] = "1"
|
||||
} else {
|
||||
Global[k] = "0"
|
||||
}
|
||||
Global.updates <- ConfigMsg{k, v}
|
||||
}
|
||||
|
||||
func NewDefaultConfig() Config {
|
||||
@@ -38,17 +53,23 @@ func NewDefaultConfig() Config {
|
||||
if docker == "" {
|
||||
docker = "unix:///var/run/docker.sock"
|
||||
}
|
||||
config := Config{
|
||||
"dockerHost": docker,
|
||||
"filterStr": "",
|
||||
"sortField": "id",
|
||||
"sortReverse": "0",
|
||||
"enableHeader": "0",
|
||||
"loggingEnabled": "1",
|
||||
|
||||
params := map[string]string{
|
||||
"dockerHost": docker,
|
||||
"filterStr": "",
|
||||
"sortField": "id",
|
||||
}
|
||||
|
||||
toggles := map[string]bool{
|
||||
"sortReverse": false,
|
||||
"enableHeader": false,
|
||||
"loggingEnabled": true,
|
||||
}
|
||||
|
||||
config := Config{params, toggles, make(chan ConfigMsg)}
|
||||
go func() {
|
||||
for m := range configChan {
|
||||
config[m.key] = m.val
|
||||
for m := range config.updates {
|
||||
config.params[m.key] = m.val
|
||||
}
|
||||
}()
|
||||
return config
|
||||
|
||||
Reference in New Issue
Block a user