@@ -98,6 +98,31 @@ func (o *PKICreateOptions) Run() error {
9898 return o .Cmd .Help ()
9999}
100100
101+ // ResolveFlagsFromViper backfills struct fields from viper (env vars) when the
102+ // corresponding CLI flag was not explicitly set. This allows flags like
103+ // --ca-file, --curve, --intermediate-file, etc. to be set via ZITI_CA_FILE,
104+ // ZITI_CURVE, ZITI_INTERMEDIATE_FILE environment variables.
105+ func (o * PKICreateOptions ) ResolveFlagsFromViper (cmd * cobra.Command ) {
106+ resolve := func (flagName string , target * string ) {
107+ if ! cmd .Flags ().Changed (flagName ) {
108+ if v := o .viper .GetString (flagName ); v != "" {
109+ * target = v
110+ }
111+ }
112+ }
113+ resolve ("ca-file" , & o .Flags .CAFile )
114+ resolve ("ca-name" , & o .Flags .CAName )
115+ resolve ("curve" , & o .Flags .EcCurve )
116+ resolve ("intermediate-file" , & o .Flags .IntermediateFile )
117+ resolve ("intermediate-name" , & o .Flags .IntermediateName )
118+ resolve ("server-file" , & o .Flags .ServerFile )
119+ resolve ("server-name" , & o .Flags .ServerName )
120+ resolve ("client-file" , & o .Flags .ClientFile )
121+ resolve ("client-name" , & o .Flags .ClientName )
122+ resolve ("key-file" , & o .Flags .KeyFile )
123+ resolve ("trust-domain" , & o .Flags .SpiffeID )
124+ }
125+
101126// ObtainPKIRoot returns the value for pki-root
102127func (o * PKICreateOptions ) ObtainPKIRoot () (string , error ) {
103128 pkiRoot := o .Flags .PKIRoot
0 commit comments