diff options
author | Julien Dessaux | 2024-03-07 00:54:35 +0100 |
---|---|---|
committer | Julien Dessaux | 2024-03-07 01:02:23 +0100 |
commit | 560becfd32dd7355547938f3c6229060dd395aab (patch) | |
tree | 42329f4e47c64349ae8a0205f867632ac52bcdc6 /gonf/variables.go | |
parent | feat(stdlib): began adding systemd services support (diff) | |
download | gonf-560becfd32dd7355547938f3c6229060dd395aab.tar.gz gonf-560becfd32dd7355547938f3c6229060dd395aab.tar.bz2 gonf-560becfd32dd7355547938f3c6229060dd395aab.zip |
chore(repo): renamed gonf subfolder to something more traditional in go land
Diffstat (limited to 'gonf/variables.go')
-rw-r--r-- | gonf/variables.go | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/gonf/variables.go b/gonf/variables.go deleted file mode 100644 index ed09d31..0000000 --- a/gonf/variables.go +++ /dev/null @@ -1,85 +0,0 @@ -package gonf - -import ( - "fmt" - "log/slog" -) - -// ----- Globals --------------------------------------------------------------- -var variables map[string]*VariablePromise - -// ----- Init ------------------------------------------------------------------ -func init() { - variables = make(map[string]*VariablePromise) -} - -// ----- Public ---------------------------------------------------------------- -func AppendVariable(name string, values ...string) *VariablePromise { - if v, ok := variables[name]; ok { - if l, ok := v.value.(*StringsListValue); ok { - l.Append(values...) - } - return v - } - v := &VariablePromise{ - isDefault: false, - name: name, - value: &StringsListValue{values}, - } - variables[name] = v - return v -} - -func Default(name string, value string) *VariablePromise { - if v, ok := variables[name]; ok { - if !v.isDefault { - slog.Debug("default would overwrite a variable, ignoring", "name", name, "old_value", v.value, "new_value", value) - return nil - } - slog.Error("default is being overwritten", "name", name, "old_value", v.value, "new_value", value) - } - v := &VariablePromise{ - isDefault: true, - name: name, - value: interfaceToTemplateValue(value), - } - variables[name] = v - return v -} - -func Variable(name string, value string) *VariablePromise { - if v, ok := variables[name]; ok && !v.isDefault { - slog.Error("variable is being overwritten", "name", name, "old_value", v, "new_value", value) - } - v := &VariablePromise{ - isDefault: false, - name: name, - value: interfaceToTemplateValue(value), - } - variables[name] = v - return v -} - -type VariablePromise struct { - isDefault bool - name string - value Value -} - -// We want VariablePromise to satisfy the Value interface -func (s VariablePromise) Bytes() []byte { - return s.value.Bytes() -} -func (s VariablePromise) String() string { - return s.value.String() -} - -// ----- Internal -------------------------------------------------------------- -func getVariable(name string) string { - if v, ok := variables[name]; ok { - return v.value.String() - } else { - slog.Error("undefined variable or default", "name", name) - panic(fmt.Sprintf("undefined variable or default %s", name)) - } -} |