@@ -208,7 +208,11 @@ func setupSpec(g *generate.Generator, context *cli.Context) error {
208208 }
209209
210210 for _ , env := range envs {
211- g .AddProcessEnv (env )
211+ name , value , err := parseEnv (env )
212+ if err != nil {
213+ return err
214+ }
215+ g .AddProcessEnv (name , value )
212216 }
213217 }
214218
@@ -740,6 +744,22 @@ func readKVStrings(files []string, override []string) ([]string, error) {
740744 return envVariables , nil
741745}
742746
747+ // parseEnv splits a given environment variable (of the form name=value) into
748+ // (name, value). An error is returned if there is no "=" in the line or if the
749+ // name is empty.
750+ func parseEnv (env string ) (string , string , error ) {
751+ parts := strings .SplitN (env , "=" , 2 )
752+ if len (parts ) != 2 {
753+ return "" , "" , fmt .Errorf ("environment variable must contain '=': %s" , env )
754+ }
755+
756+ name , value := parts [0 ], parts [1 ]
757+ if name == "" {
758+ return "" , "" , fmt .Errorf ("environment variable must have non-empty name: %s" , env )
759+ }
760+ return name , value , nil
761+ }
762+
743763// parseEnvFile reads a file with environment variables enumerated by lines
744764//
745765// ``Environment variable names used by the utilities in the Shell and
0 commit comments