24e8161262
- add base structure - unify the proto metrics creation and propagation - implement arp and openvpn - refactor to meet the prom exporter standart - add instance label to the metrics - refactor the call chain - add gateway, unbound_dns and openvpn implementations - add gateway stuff - structure refactor; mod clean; cron implementation - implement cron in the collector; refactor utils in the opnsense package refactor names and implement option functions to disable collectorInstances add GH action workflows Create codeql.yml - clean fix stuff
33 lines
903 B
Go
33 lines
903 B
Go
package kingpin
|
|
|
|
// HintAction is a function type who is expected to return a slice of possible
|
|
// command line arguments.
|
|
type HintAction func() []string
|
|
type completionsMixin struct {
|
|
hintActions []HintAction
|
|
builtinHintActions []HintAction
|
|
}
|
|
|
|
func (a *completionsMixin) addHintAction(action HintAction) {
|
|
a.hintActions = append(a.hintActions, action)
|
|
}
|
|
|
|
// Allow adding of HintActions which are added internally, ie, EnumVar
|
|
func (a *completionsMixin) addHintActionBuiltin(action HintAction) {
|
|
a.builtinHintActions = append(a.builtinHintActions, action)
|
|
}
|
|
|
|
func (a *completionsMixin) resolveCompletions() []string {
|
|
var hints []string
|
|
|
|
options := a.builtinHintActions
|
|
if len(a.hintActions) > 0 {
|
|
// User specified their own hintActions. Use those instead.
|
|
options = a.hintActions
|
|
}
|
|
|
|
for _, hintAction := range options {
|
|
hints = append(hints, hintAction()...)
|
|
}
|
|
return hints
|
|
}
|