feat(gonf): support a GONF_HOST environment variable

This commit is contained in:
Julien Dessaux 2024-06-07 22:42:57 +02:00
parent 4a254746de
commit 1a4192b5c9
Signed by: adyxax
GPG key ID: F92E51B86E07177E
4 changed files with 12 additions and 7 deletions

View file

@ -24,7 +24,7 @@ where FLAG can be one or more of`, flag.ContinueOnError)
f.SetOutput(stdout) f.SetOutput(stdout)
f.Usage() f.Usage()
} }
hostDir, err := hostFlagToHostDir(hostFlag) hostDir, err := hostFlagToHostDir(hostFlag, getenv)
if err != nil { if err != nil {
f.Usage() f.Usage()
return err return err

View file

@ -23,7 +23,7 @@ where FLAG can be one or more of`, flag.ContinueOnError)
f.SetOutput(stdout) f.SetOutput(stdout)
f.Usage() f.Usage()
} }
hostDir, err := hostFlagToHostDir(hostFlag) hostDir, err := hostFlagToHostDir(hostFlag, getenv)
if err != nil { if err != nil {
f.Usage() f.Usage()
return err return err

View file

@ -8,12 +8,17 @@ import (
) )
func addHostFlag(f *flag.FlagSet) *string { func addHostFlag(f *flag.FlagSet) *string {
return f.String("host", "", "(REQUIRED) a valid $GONF_CONFIG/hosts/ subdirectory") return f.String("host", "", "(REQUIRED) a valid $GONF_CONFIG/hosts/ subdirectory (overrides the GONF_HOST environment variable)")
} }
func hostFlagToHostDir(hostFlag *string) (string, error) { func hostFlagToHostDir(hostFlag *string,
getenv func(string) string,
) (string, error) {
if *hostFlag == "" { if *hostFlag == "" {
return "", fmt.Errorf("required -host FLAG is missing") *hostFlag = getenv("GONF_HOST")
if *hostFlag == "" {
return "", fmt.Errorf("the GONF_HOST environment variable is unset and the -host FLAG is missing. Please use one or the other")
}
} }
hostDir := filepath.Join(configDir, "hosts", *hostFlag) hostDir := filepath.Join(configDir, "hosts", *hostFlag)
if info, err := os.Stat(hostDir); err != nil { if info, err := os.Stat(hostDir); err != nil {

View file

@ -65,13 +65,13 @@ type IntValue struct {
} }
func (i IntValue) Bytes() []byte { func (i IntValue) Bytes() []byte {
return []byte(fmt.Sprint(i.value)) return []byte(strconv.Itoa(i.value))
} }
func (i IntValue) Int() (int, error) { func (i IntValue) Int() (int, error) {
return i.value, nil return i.value, nil
} }
func (i IntValue) String() string { func (i IntValue) String() string {
return fmt.Sprint(i.value) return strconv.Itoa(i.value)
} }
type StringsListValue struct { type StringsListValue struct {