Sha256: 8ca4b0378401a99ca72db79d14f70f663d90389751db833493cc3df1e7dcaaed

Contents?: true

Size: 1.84 KB

Versions: 4

Compression:

Stored size: 1.84 KB

Contents

require 'keyring_liberator'
require 'name_whisperer'

module Pod
  class Command
    class Keys
      class Set < Keys
        include Config::Mixin

        self.summary = 'A set values for keys.'

        self.description = <<-DESC
            Save a environment key to be added to your project on the next pod install.

            If a third argument is given then that will be used as the project name if
            you need to skip the project naming process.
        DESC

        self.arguments = [CLAide::Argument.new('key', true),
                          CLAide::Argument.new('value', true),
                          CLAide::Argument.new('project_name', false)]

        def initialize(argv)
          @key_name = argv.shift_argument
          @key_value = argv.shift_argument
          @project_name = argv.shift_argument
          super
        end

        def validate!
          super
          verify_podfile_exists!
          help! 'A key name is required to save.' unless @key_name
          help! 'A value is required for the key.' unless @key_value
        end

        def run
          # set a key to a folder id in ~/.cocoapods/keys
          # info "Saving into the keychain."

          keyring = current_keyring
          keyring.keys << @key_name.tr('-', '_')
          CocoaPodsKeys::KeyringLiberator.save_keyring keyring

          keyring.save @key_name, @key_value

          UI.puts "Saved #{@key_name} to #{keyring.name}." unless config.silent?
        end

        def current_keyring
          current_dir = Pathname.pwd
          keyring = CocoaPodsKeys::KeyringLiberator.get_keyring current_dir

          unless keyring
            name = @project_name || CocoaPodsKeys::NameWhisperer.get_project_name
            keyring = CocoaPodsKeys::Keyring.new(name, current_dir, [])
          end

          keyring
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
cocoapods-keys-1.4.0 lib/pod/command/keys/set.rb
cocoapods-keys-1.3.2 lib/pod/command/keys/set.rb
cocoapods-keys-1.3.1 lib/pod/command/keys/set.rb
cocoapods-keys-1.3.0 lib/pod/command/keys/set.rb