Sha256: 6ba3e00a20fb67b9f4cda0a147d477a33e3d1c5b849be3cee5eae71215140d28

Contents?: true

Size: 2 KB

Versions: 13

Compression:

Stored size: 2 KB

Contents

module FaaStRuby
  module Command
    module Credentials
      class Add < CredentialsBaseCommand
        def initialize(args)
          @args = args
          @workspace_name = @args.shift
          FaaStRuby::CLI.error(['Missing argument: WORKSPACE_NAME'.red, usage], color: nil) if @workspace_name.nil? || @workspace_name =~ /^-.*/
          parse_options
          @options['credentials_file'] ||= FaaStRuby.credentials_file
          @missing_args = []
          FaaStRuby::CLI.error(@missing_args, color: nil) if missing_args.any?
        end

        def run
          new_credentials = {'api_key' => @options['api_key'], 'api_secret' => @options['api_secret']}
          FaaStRuby::Credentials.add(@workspace_name, new_credentials, @options['credentials_file'])
          puts "Credentials file updated."
        end

        def self.help
          "add-credentials".light_cyan + " WORKSPACE_NAME -k API_KEY -s API_SECRET [-c CREDENTIALS_FILE]"
        end

        def usage
          "Usage: faastruby #{self.class.help}"
        end

        private

        def missing_args
          @missing_args << "Missing argument: API_KEY".red unless @options['api_key']
          @missing_args << "Missing argument: API_SECRET".red unless @options['api_secret']
          @missing_args << "Missing argument: CREDENTIALS_FILE".red unless @options['credentials_file']
          @missing_args << usage if @missing_args.any?
          @missing_args
        end

        def parse_options
          @options = {}
          while @args.any?
            option = @args.shift
            case option
            when '-k', '--api-key'
              @options['api_key'] = @args.shift
            when '-c', '--credentials-file'
              @options['credentials_file'] = @args.shift
            when '-s', '--api-secret'
              @options['api_secret'] = @args.shift
            else
              FaaStRuby::CLI.error(["Unknown argument: #{option}".red, usage], color: nil)
            end
          end
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
faastruby-0.4.18 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.17 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.16 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.15 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.14 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.12 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.11 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.10 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.9 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.8 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.7 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.6 lib/faastruby/cli/commands/credentials/add.rb
faastruby-0.4.5 lib/faastruby/cli/commands/credentials/add.rb