diff options
author | Julien Dessaux | 2024-04-10 23:36:31 +0200 |
---|---|---|
committer | Julien Dessaux | 2024-04-11 00:00:00 +0200 |
commit | 19f5ed4e0c4c7183504975fe799003986095f48d (patch) | |
tree | 928ed7b4dc76d100761b8f229db6d9eeb147e9db | |
parent | feat(users): implemented basic user creation promise (diff) | |
download | gonf-19f5ed4e0c4c7183504975fe799003986095f48d.tar.gz gonf-19f5ed4e0c4c7183504975fe799003986095f48d.tar.bz2 gonf-19f5ed4e0c4c7183504975fe799003986095f48d.zip |
feat(gonf): implement config directory flag and env variable
-rw-r--r-- | cmd/gonf/main.go | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/cmd/gonf/main.go b/cmd/gonf/main.go index 882636a..1e28368 100644 --- a/cmd/gonf/main.go +++ b/cmd/gonf/main.go @@ -12,13 +12,14 @@ import ( var ( batchMode bool + configDir string helpMode bool ) func main() { if err := run(context.Background(), os.Args, - //os.Getenv, + os.Getenv, //os.Getwd, //os.Stdin, os.Stdout, @@ -31,7 +32,7 @@ func main() { func run(ctx context.Context, args []string, - //getenv func(string) string, + getenv func(string) string, //getwd func() (string, error), //stdin io.Reader, stdout, stderr io.Writer, @@ -46,6 +47,7 @@ where COMMAND is one of: where FLAG can be one or more of`, flag.ContinueOnError) f.BoolVar(&batchMode, "batch", false, "skips all questions and confirmations, using the default (safe) choices each time") f.BoolVar(&helpMode, "help", false, "show contextual help") + f.StringVar(&configDir, "config", "", "(REQUIRED for most commands) path to a gonf configurations repository (overrides the GONF_CONFIG environment variable)") f.SetOutput(stderr) f.Parse(args[1:]) @@ -61,8 +63,18 @@ where FLAG can be one or more of`, flag.ContinueOnError) case "version": cmdVersion() default: - f.Usage() - return fmt.Errorf("Invalid command: %s", cmd) + if configDir == "" { + configDir = getenv("GONF_CONFIG") + if configDir == "" { + f.Usage() + return errors.New("The GONF_CONFIG environment variable is unset and the -config FLAG is missing. Please use one or the other.") + } + } + switch cmd { + default: + f.Usage() + return fmt.Errorf("Invalid command: %s", cmd) + } } return nil } |