Class: AwsAssumeRole::Cli::Actions::SetEnvironment
- Inherits:
-
AbstractAction
- Object
- AbstractAction
- AwsAssumeRole::Cli::Actions::SetEnvironment
- Includes:
- Ui
- Defined in:
- lib/aws_assume_role/cli/actions/set_environment.rb
Constant Summary collapse
- SHELL_STRINGS =
{ sh: { env_command: "%<key>s=%<value>s; export %<key>s; ", }, csh: { env_command: "setenv %<key>s %<value>s; ", }, fish: { env_command: "set -x %<key>s %<value>s; ", footer: "commands.set_environment.shells.fish", }, powershell: { env_command: "set-item ENV:%<key>s %<value>s; ", footer: "commands.set_environment.shells.powershell", }, }.freeze
- CommandSchema =
proc do optional(:profile).filled? optional(:region) { filled? > format?(REGION_REGEX) } optional(:serial_number) { filled? > format?(MFA_REGEX) } optional(:external_id) { filled? > format?(EXTERNAL_ID_REGEX) } required(:shell_type).value(included_in?: SHELL_STRINGS.stringify_keys.keys) required(:role_arn).maybe { filled? > format?(ROLE_REGEX) } required(:role_session_name).maybe { filled? > format?(ROLE_SESSION_NAME_REGEX) } required(:duration_seconds).maybe rule(role_specification: %i[profile role_arn role_session_name duration_seconds]) do |p, r, s, d| (p.filled? | p.empty? & r.filled?) & (r.filled? > s.filled? & d.filled?) end end
Constants included from AwsAssumeRole
AwsAssumeRole::Config, DefaultProvider, VERSION
Constants included from Types
Types::ACCESS_KEY_REGEX, Types::ACCESS_KEY_VALIDATOR, Types::ARN_REGEX, Types::Credentials, Types::Dry, Types::EXTERNAL_ID_REGEX, Types::MFA_REGEX, Types::MfaSerial, Types::REGION_REGEX, Types::REGION_VALIDATOR, Types::ROLE_REGEX, Types::ROLE_SESSION_NAME_REGEX, Types::Region, Types::SECRET_ACCESS_KEY_REGEX, Types::SECRET_ACCESS_KEY_VALIDATOR
Instance Method Summary collapse
Methods included from Ui
ask_with_validation, error, input, out, pastel, show_validation_errors, t, validation_errors_to_s
Methods included from AwsAssumeRole
Methods inherited from AbstractAction
Methods included from Logging
Constructor Details
This class inherits a constructor from AwsAssumeRole::Cli::Actions::AbstractAction
Instance Method Details
#act_on(config) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/aws_assume_role/cli/actions/set_environment.rb', line 40 def act_on(config) credentials = try_for_credentials config.to_h shell_strings = SHELL_STRINGS[config.shell_type.to_sym] str = String.new("") [ [:access_key_id, "AWS_ACCESS_KEY_ID"], [:secret_access_key, "AWS_SECRET_ACCESS_KEY"], [:session_token, "AWS_SESSION_TOKEN"], ].each do |key| value = credentials.credentials.send key[0] next if value.blank? str << format(shell_strings[:env_command], key: key[1], value: value) end str << "# #{pastel.yellow t(shell_strings.fetch(:footer, 'commands.set_environment.shells.others'))}" puts str rescue KeyError, Aws::Errors::NoSuchProfileError error format(t("errors.NoSuchProfileError"), config.profile) raise rescue Aws::Errors::MissingCredentialsError error t("errors.MissingCredentialsError") raise end |