func parseOptions()

in cli/options.go [63:100]


func parseOptions(args argumentList) (*cliOpts, error) {
	opts := &cliOpts{}

ArgsLoop:
	for len(args) > 0 {
		switch arg := args.Next(); arg {

		case "-f":
			opts.forceRefresh = true

		case "--force-refresh":
			opts.forceRefresh = true

		case "--role":
			opts.role = args.Next()

		case "--role-session-name":
			opts.roleSessionName = args.Next()

		case "--":
			// Stop parsing and add remaining args to opts.args
			opts.args = append(opts.args, args...)
			break ArgsLoop

		default:
			// Stop parsing and add this arg + remaining args to opts.args
			opts.args = append(opts.args, arg)
			opts.args = append(opts.args, args...)
			break ArgsLoop
		}
	}

	if opts.role == "" {
		return opts, errNoRole
	}

	return opts, nil
}