if whitelisted_args.any? or whitelisted_flags.any?

= view_marker

whitelisted_args.each do |arg|
  if arg.repeatable
    > eval "input_array=(${args[{{ arg.name }}]})"
    > for i in "${input_array[@]}"; do
    >   if [[ ! $i =~ ^({{ arg.allowed.join '|' }})$ ]]; then
    >     printf "%s\n" "{{ strings[:disallowed_argument] % { name: arg.name, allowed: arg.allowed.join(', ') } }}" >&2
    >     exit 1
    >   fi
    > done

  else
    > if [[ -n ${args['{{ arg.name }}']} ]] && [[ ! ${args['{{ arg.name }}']} =~ ^({{ arg.allowed.join '|' }})$ ]]; then
    >   printf "%s\n" "{{ strings[:disallowed_argument] % { name: arg.name, allowed: arg.allowed.join(', ') } }}" >&2
    >   exit 1
    > fi

  end
end

whitelisted_flags.each do |flag|
  if flag.repeatable
    > eval "input_array=(${args[{{ flag.name }}]})"
    > for i in "${input_array[@]}"; do
    >   if [[ ! $i =~ ^({{ flag.allowed.join '|' }})$ ]]; then
    >     printf "%s\n" "{{ strings[:disallowed_flag] % { name: flag.name, allowed: flag.allowed.join(', ') } }}" >&2
    >     exit 1
    >   fi
    > done

  else
    > if [[ ${args['{{ flag.name }}']} ]] && [[ ! ${args['{{ flag.name }}']} =~ ^({{ flag.allowed.join '|' }})$ ]]; then
    >   printf "%s\n" "{{ strings[:disallowed_flag] % { name: flag.name, allowed: flag.allowed.join(', ') } }}" >&2
    >   exit 1
    > fi

  end
end

end