feat: implement config:import command

Closes #6846
This commit is contained in:
Jose Diaz-Gonzalez
2025-11-08 01:02:19 -05:00
parent 48fd2b3862
commit e134c314ea
13 changed files with 477 additions and 12 deletions

View File

@@ -24,6 +24,7 @@ Additional commands:`
config:clear [--no-restart] (<app>|--global), Clears environment variables
config:export [--format=FORMAT] [--merged] (<app>|--global), Export a global or app environment
config:get [--quoted] (<app>|--global) KEY, Display a global or app-specific config value
config:import [--no-restart] [--replace] (<app>|--global) [FILE|-], Import environment from file
config:keys [--merged] (<app>|--global), Show keys set in environment
config:show [--merged] (<app>|--global), Show keys set in environment
config:set [--encoded] [--no-restart] (<app>|--global) KEY1=VALUE1 [KEY2=VALUE2 ...], Set one or more config vars

View File

@@ -65,6 +65,22 @@ func main() {
}
keys := getKeys(args.Args(), *global)
err = config.CommandGet(appName, keys, *global, *quoted)
case "import":
args := flag.NewFlagSet("config:import", flag.ExitOnError)
global := args.Bool("global", false, "--global: use the global environment")
noRestart := args.Bool("no-restart", false, "--no-restart: no restart")
replace := args.Bool("replace", false, "--replace: replace existing config vars")
format := args.String("format", "envfile", "--format: [ envfile | json ] which format to export as)")
args.Parse(os.Args[2:])
var filename string
if !*global {
appName = args.Arg(0)
filename = args.Arg(1)
} else {
filename = args.Arg(0)
}
err = config.CommandImport(appName, *global, *replace, *noRestart, *format, filename)
case "keys":
args := flag.NewFlagSet("config:keys", flag.ExitOnError)
global := args.Bool("global", false, "--global: use the global environment")