export config struct fields, add convenience methods for value fetching

This commit is contained in:
Bradley Cicenas
2017-02-16 04:06:05 +00:00
parent 5bbce31601
commit a1f860a020
8 changed files with 67 additions and 65 deletions

View File

@@ -15,12 +15,12 @@ var (
func Init() {
for _, p := range params {
GlobalParams = append(GlobalParams, p)
log.Debugf("loaded config param: \"%s\": \"%s\"", p.key, p.val)
log.Debugf("loaded config param: \"%s\": \"%s\"", p.Key, p.Val)
}
for _, s := range switches {
GlobalSwitches = append(GlobalSwitches, s)
log.Debugf("loaded config switch: \"%s\": %t", s.key, s.val)
log.Debugf("loaded config switch: \"%s\": %t", s.Key, s.Val)
}
}

View File

@@ -3,46 +3,47 @@ package config
// defaults
var params = []*Param{
&Param{
key: "dockerHost",
val: getEnv("DOCKER_HOST", "unix:///var/run/docker.sock"),
label: "Docker API URL",
Key: "dockerHost",
Val: getEnv("DOCKER_HOST", "unix:///var/run/docker.sock"),
Label: "Docker API URL",
},
&Param{
key: "filterStr",
val: "",
label: "Container Name or ID Filter",
Key: "filterStr",
Val: "",
Label: "Container Name or ID Filter",
},
&Param{
key: "sortField",
val: "id",
label: "Container Sort Field",
Key: "sortField",
Val: "id",
Label: "Container Sort Field",
},
}
type Param struct {
key string
val string
label string
Key string
Val string
Label string
}
// Return param value
func Get(k string) string {
// Get Param by key
func Get(k string) *Param {
for _, p := range GlobalParams {
if p.key == k {
return p.val
if p.Key == k {
return p
}
}
return "" // default
return &Param{} // default
}
// Get Param value by key
func GetVal(k string) string {
return Get(k).Val
}
// Set param value
func Update(k, v string) {
for _, p := range GlobalParams {
if p.key == k {
log.Noticef("config change: %s: %s -> %s", k, p.val, v)
p.val = v
return
}
}
log.Errorf("ignoring update for non-existant parameter: %s", k)
p := Get(k)
log.Noticef("config change: %s: %s -> %s", k, p.Val, v)
p.Val = v
// log.Errorf("ignoring update for non-existant parameter: %s", k)
}

View File

@@ -3,52 +3,53 @@ package config
// defaults
var switches = []*Switch{
&Switch{
key: "sortReversed",
val: false,
label: "Reverse Sort Order",
Key: "sortReversed",
Val: false,
Label: "Reverse Sort Order",
},
&Switch{
key: "allContainers",
val: false,
label: "Show All Containers",
Key: "allContainers",
Val: false,
Label: "Show All Containers",
},
&Switch{
key: "enableHeader",
val: false,
label: "Enable cTop Status Line",
Key: "enableHeader",
Val: false,
Label: "Enable cTop Status Line",
},
&Switch{
key: "loggingEnabled",
val: true,
label: "Enable Logging Server",
Key: "loggingEnabled",
Val: true,
Label: "Enable Logging Server",
},
}
type Switch struct {
key string
val bool
label string
Key string
Val bool
Label string
}
// Return toggle value
func GetSwitch(k string) bool {
// Return Switch by key
func GetSwitch(k string) *Switch {
for _, sw := range GlobalSwitches {
if sw.key == k {
return sw.val
if sw.Key == k {
return sw
}
}
return false // default
return &Switch{} // default
}
// Return Switch value by key
func GetSwitchVal(k string) bool {
return GetSwitch(k).Val
}
// Toggle a boolean switch
func Toggle(k string) {
for _, sw := range GlobalSwitches {
if sw.key == k {
newVal := sw.val != true
log.Noticef("config change: %s: %t -> %t", k, sw.val, newVal)
sw.val = newVal
return
}
}
log.Errorf("ignoring toggle for non-existant switch: %s", k)
sw := GetSwitch(k)
newVal := sw.Val != true
log.Noticef("config change: %s: %t -> %t", k, sw.Val, newVal)
sw.Val = newVal
//log.Errorf("ignoring toggle for non-existant switch: %s", k)
}