cert 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e27598992c352ec26e99815898586e1ba85c6d1e
4
- data.tar.gz: a4415ab01ec9879ee2be155717c1f75f1d02d5bc
3
+ metadata.gz: 6259690b66a7e4c593ec0791ea5bb3c0942454e2
4
+ data.tar.gz: 30cd02aade4ab49c87a0bc9d8ac2f14eb7996adc
5
5
  SHA512:
6
- metadata.gz: 87ad0f5a9e10c8e150b974ec3c5442ec480a4ea26790dc6f510e193b3bdfe6f5caef09fcd648afe995f7e498870857822120ecfe03fa3e385cd1894f7ddfc5b6
7
- data.tar.gz: e469f9b484544a7b49a96223cb82fb94bce02c0b17f145a5d3fdf31e6d3ac53f20ee81d8ca55a8c170b4831ba19a2ecbd7d81aa8a70990220d6ea35d4be301af
6
+ metadata.gz: 20cb4cdb1b72596db16faca9bce5d3fa6fe0e24ade05d5a59e6efb707bdc98ac2b1ced4fd171e79f1c58b646c2082a69f275f8669ca29815a113cedd8a05b0f5
7
+ data.tar.gz: 94ab37d8f4216f5591b37675eae649239b035f2f15f83a0a6f701cdf55db24631cc96c2cc0ab3dfcfda2c00bab56b9c2d45f5d9fa8f97676c8380a99a905ddc4
data/README.md CHANGED
@@ -90,6 +90,9 @@ You can pass your Apple ID:
90
90
 
91
91
  cert -u cert@krausefx.com
92
92
 
93
+ For a list of available commands run
94
+
95
+ cert --help
93
96
 
94
97
  ## Environment Variables
95
98
  In case you prefer environment variables:
@@ -97,6 +100,7 @@ In case you prefer environment variables:
97
100
  - ```CERT_USERNAME```
98
101
  - ```CERT_TEAM_ID```
99
102
  - ```CERT_KEYCHAIN_PATH``` The path to a specific Keychain if you don't want to use the default one
103
+ - ```FASTLANE_TEAM_NAME``` (the Team Name, e.g. `Felix Krause`)
100
104
 
101
105
  ## Use with [`sigh`](https://github.com/KrauseFx/sigh)
102
106
 
data/bin/cert CHANGED
@@ -6,6 +6,7 @@ require 'cert'
6
6
  require 'commander'
7
7
  require 'credentials_manager/password_manager'
8
8
  require 'credentials_manager/appfile_config'
9
+ require 'cert/options'
9
10
 
10
11
  HighLine.track_eof = false
11
12
 
@@ -22,34 +23,18 @@ class CertApplication
22
23
 
23
24
  always_trace!
24
25
 
25
- global_option '-u', '--username STRING', 'Your Apple ID username'
26
- global_option '--development', 'Create a development certificate instead of a distribution one.'
26
+ FastlaneCore::CommanderGenerator.new.generate(Cert::Options.available_options)
27
27
 
28
28
  command :create do |c|
29
29
  c.syntax = 'cert create'
30
30
  c.description = 'Create new iOS code signing certificates'
31
31
 
32
32
  c.action do |args, options|
33
- username(options)
34
-
35
- type = Cert::DeveloperCenter::DISTRIBUTION
36
- type = Cert::DeveloperCenter::DEVELOPMENT if options.development
37
-
38
- Cert::CertRunner.run(type)
39
-
40
- installed = Cert::CertChecker.is_installed?ENV["CER_FILE_PATH"]
41
- raise "Could not find the newly generated certificate installed" unless installed
33
+ Cert.config = FastlaneCore::Configuration.create(Cert::Options.available_options, options.__hash__)
34
+ Cert::CertRunner.run
42
35
  end
43
36
  end
44
37
 
45
- def username(options)
46
- user = options.username
47
- user ||= ENV["CERT_USERNAME"]
48
- user ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
49
-
50
- CredentialsManager::PasswordManager.shared_manager(user) if user
51
- end
52
-
53
38
  default_command :create
54
39
 
55
40
  run!
@@ -9,6 +9,11 @@ require 'cert/keychain_importer'
9
9
  require 'fastlane_core'
10
10
 
11
11
  module Cert
12
+ # Use this to just setup the configuration attribute and set it later somewhere else
13
+ class << self
14
+ attr_accessor :config
15
+ end
16
+
12
17
  TMP_FOLDER = "/tmp/cert/"
13
18
  FileUtils.mkdir_p TMP_FOLDER
14
19
 
@@ -1,7 +1,10 @@
1
1
  module Cert
2
2
  class CertRunner
3
- def self.run(type)
4
- Cert::DeveloperCenter.new.run(type)
3
+ def self.run
4
+ Cert::DeveloperCenter.new.run
5
+
6
+ installed = Cert::CertChecker.is_installed?ENV["CER_FILE_PATH"]
7
+ raise "Could not find the newly generated certificate installed" unless installed
5
8
  end
6
9
  end
7
10
  end
@@ -11,27 +11,28 @@ module Cert
11
11
 
12
12
  # This will check if there is at least one of the certificates already installed on the local machine
13
13
  # This will store the resulting file name in ENV 'CER_FILE_PATH' and the Cert ID in 'CER_CERTIFICATE_ID'
14
- def run(type)
15
- file = find_existing_cert(type)
14
+ def run
15
+ @type = (Cert.config[:development] ? DEVELOPMENT : DISTRIBUTION)
16
+ file = find_existing_cert
16
17
  if file
17
18
  # We don't need to do anything :)
18
19
  ENV["CER_FILE_PATH"] = file
19
20
  else
20
- create_certificate(type)
21
+ create_certificate
21
22
  end
22
23
  rescue => ex
23
24
  error_occured(ex)
24
25
  end
25
26
 
26
- def find_existing_cert(type)
27
- if type == DEVELOPMENT
27
+ def find_existing_cert
28
+ if @type == DEVELOPMENT
28
29
  visit CERTS_URL_DEV
29
30
  else
30
31
  visit CERTS_URL
31
32
  end
32
33
 
33
34
  # Download all available certs to check if they are installed using the SHA1 hash
34
- certs = code_signing_certificate(type)
35
+ certs = code_signing_certificate
35
36
  certs.each do |current|
36
37
  display_id = current['certificateId']
37
38
  type_id = current['certificateTypeDisplayId']
@@ -54,7 +55,7 @@ module Cert
54
55
  end
55
56
 
56
57
  # This will actually create a new certificate
57
- def create_certificate(type)
58
+ def create_certificate
58
59
  visit CREATE_CERT_URL
59
60
  wait_for_elements("form[name='certificateSave']")
60
61
 
@@ -62,7 +63,7 @@ module Cert
62
63
 
63
64
  # select certificate type
64
65
  toggle_value = 'type-iosNoOCSP'
65
- toggle_value = 'type-development' if type == DEVELOPMENT
66
+ toggle_value = 'type-development' if @type == DEVELOPMENT
66
67
  app_store_toggle = first("input##{toggle_value}")
67
68
  if !!app_store_toggle['disabled']
68
69
  # Limit of certificates already reached
@@ -150,8 +151,8 @@ module Cert
150
151
  # "certificateTypeDisplayId"=>"...",
151
152
  # "serialNum"=>"....",
152
153
  # "typeString"=>"iOS Distribution"},
153
- def code_signing_certificate(type)
154
- if type == DEVELOPMENT
154
+ def code_signing_certificate
155
+ if @type == DEVELOPMENT
155
156
  visit CERTS_URL_DEV
156
157
  else
157
158
  visit CERTS_URL
@@ -168,7 +169,7 @@ module Cert
168
169
  available = []
169
170
 
170
171
  certTypeName = 'iOS Distribution'
171
- certTypeName = 'iOS Development' if type == DEVELOPMENT
172
+ certTypeName = 'iOS Development' if @type == DEVELOPMENT
172
173
  certs = post_ajax(url)['certRequests']
173
174
  certs.each do |current_cert|
174
175
  if current_cert['typeString'] == certTypeName
@@ -2,7 +2,7 @@ module Cert
2
2
  class KeychainImporter
3
3
  def self.import_file(path)
4
4
  raise "Could not find file '#{path}'".red unless File.exists?(path)
5
- keychain = ENV["CERT_KEYCHAIN_PATH"] || "#{Dir.home}/Library/Keychains/login.keychain"
5
+ keychain = Cert.config[:keychain_path] || "#{Dir.home}/Library/Keychains/login.keychain"
6
6
 
7
7
  puts `security import '#{path}' -k '#{keychain}'`
8
8
  end
@@ -0,0 +1,38 @@
1
+ require 'fastlane_core'
2
+
3
+ module Cert
4
+ class Options
5
+ def self.available_options
6
+ @@options ||= [
7
+ FastlaneCore::ConfigItem.new(key: :development,
8
+ env_name: "CERT_DEVELOPMENT",
9
+ description: "Create a development certificate instead of a distribution one",
10
+ is_string: false),
11
+ FastlaneCore::ConfigItem.new(key: :username,
12
+ short_option: "-u",
13
+ env_name: "CERT_USERNAME",
14
+ description: "Your Apple ID Username",
15
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:apple_id),
16
+ verify_block: Proc.new do |value|
17
+ CredentialsManager::PasswordManager.shared_manager(value)
18
+ end),
19
+ FastlaneCore::ConfigItem.new(key: :team_id,
20
+ short_option: "-t",
21
+ env_name: "CERT_TEAM_ID",
22
+ description: "The ID of your team if you're in multiple teams",
23
+ optional: true,
24
+ verify_block: Proc.new do |value|
25
+ ENV["FASTLANE_TEAM_ID"] = value
26
+ end),
27
+ FastlaneCore::ConfigItem.new(key: :keychain_path,
28
+ short_option: "-k",
29
+ env_name: "CERT_KEYCHAIN_PATH",
30
+ description: "Path to a custom keychain",
31
+ optional: true,
32
+ verify_block: Proc.new do |value|
33
+ raise "Keychain not found at path '#{value}'".red unless File.exists?value
34
+ end)
35
+ ]
36
+ end
37
+ end
38
+ end
@@ -1,3 +1,3 @@
1
1
  module Cert
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cert
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-06 00:00:00.000000000 Z
11
+ date: 2015-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastlane_core
@@ -139,6 +139,7 @@ files:
139
139
  - lib/cert/dependency_checker.rb
140
140
  - lib/cert/developer_center.rb
141
141
  - lib/cert/keychain_importer.rb
142
+ - lib/cert/options.rb
142
143
  - lib/cert/signing_request.rb
143
144
  - lib/cert/version.rb
144
145
  homepage: https://fastlane.tools