From 032eb60f54d1ad836b7c432be14cb22fa5cd7e9f Mon Sep 17 00:00:00 2001 From: Kenneth Bingham Date: Thu, 21 Mar 2024 18:40:25 -0400 Subject: [PATCH] add create config environment --no-shell option to suppress shell variable declarations for generic env assignments usable with Docker Compose and systemd; fixed #1858 --- ziti/cmd/create/config_templates/environment.yml | 6 +++++- ziti/cmd/create/create_config_environment.go | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ziti/cmd/create/config_templates/environment.yml b/ziti/cmd/create/config_templates/environment.yml index 2b402a7e5..368225b95 100644 --- a/ziti/cmd/create/config_templates/environment.yml +++ b/ziti/cmd/create/config_templates/environment.yml @@ -2,5 +2,9 @@ {{ $varDeclare := .OSVarDeclare }} {{- range .EnvVars}} {{ $commentPrefix }} {{ .Description }} +{{- if $varDeclare }} {{ $varDeclare }} {{ .Name }}={{ .Value }} -{{- end }} \ No newline at end of file +{{- else }} +{{ .Name }}={{ .Value }} +{{- end }} +{{- end }} diff --git a/ziti/cmd/create/create_config_environment.go b/ziti/cmd/create/create_config_environment.go index fb5066152..a378c759b 100644 --- a/ziti/cmd/create/create_config_environment.go +++ b/ziti/cmd/create/create_config_environment.go @@ -69,11 +69,18 @@ var environmentOptions *CreateConfigEnvironmentOptions type CreateConfigEnvironmentOptions struct { CreateConfigOptions EnvVariableTemplateData + + DisableOSVarDeclare bool +} + +func (options *CreateConfigEnvironmentOptions) addFlags(cmd *cobra.Command) { + cmd.Flags().BoolVar(&options.DisableOSVarDeclare, "no-shell", false, "Disable printing assignments prefixed with 'SET' (Windows) or 'export' (Unix)") } // NewCmdCreateConfigEnvironment creates a command object for the "environment" command func NewCmdCreateConfigEnvironment() *cobra.Command { environmentOptions = &CreateConfigEnvironmentOptions{} + data := &ConfigTemplateValues{} cmd := &cobra.Command{ @@ -138,10 +145,14 @@ func NewCmdCreateConfigEnvironment() *cobra.Command { // Figure out the correct comment prefix and variable declaration command if runtime.GOOS == "windows" { environmentOptions.OSCommentPrefix = "rem" - environmentOptions.OSVarDeclare = "SET" + if ! environmentOptions.DisableOSVarDeclare { + environmentOptions.OSVarDeclare = "SET" + } } else { environmentOptions.OSCommentPrefix = "#" - environmentOptions.OSVarDeclare = "export" + if ! environmentOptions.DisableOSVarDeclare { + environmentOptions.OSVarDeclare = "export" + } } if environmentOptions.Verbose { logrus.SetLevel(logrus.DebugLevel) @@ -212,6 +223,7 @@ func NewCmdCreateConfigEnvironment() *cobra.Command { cmd.Long = sb.String() + environmentOptions.addFlags(cmd) environmentOptions.addCreateFlags(cmd) return cmd