func()

in image/resources/netapp-exports/internal/opt/opt.go [36:77]


func (opts *OptSet) Parse(arguments []string) error {
	flags := opts.flags

	if opts.LookupEnv == nil {
		opts.LookupEnv = os.LookupEnv
	}

	err := flags.Parse(arguments)
	if err != nil {
		return err
	}

	// copy the environment map
	env := make(map[string]string)
	for k, v := range opts.env {
		env[k] = v
	}

	// remove arguments that have already been explicitly set by the command line flags
	flags.Visit(func(f *flag.Flag) {
		delete(env, f.Name)
	})

	// set arguments from the environment
	for f, e := range env {
		err := opts.setFromEnv(f, e)
		if err != nil {
			switch flags.ErrorHandling() {
			case flag.ContinueOnError:
				return err
			case flag.ExitOnError:
				fmt.Fprintln(flags.Output(), err)
				flags.Usage()
				os.Exit(2)
			case flag.PanicOnError:
				panic(err)
			}
		}
	}

	return nil
}