sigh 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 967ededb8169f8a0771e37d422d19875de5750a0
4
- data.tar.gz: f8513c6e171c78e8d9d3327a477174939322eee2
3
+ metadata.gz: 9589402f17e4e3c23d0511b977fa7346999dea3f
4
+ data.tar.gz: 8980cd98b9bd6e6ab7dd2dd7b73d1dc4ce292a93
5
5
  SHA512:
6
- metadata.gz: d6c0333740d3489f347e07f5124fdc488c4c9bfdd879863a2dbb83c20d9722c534c242602ce9773581bb575b2df68ea132e4ea3e91c211596d644e72189135f2
7
- data.tar.gz: c9bae3d4c703a9290eee7a886aecf4fad311121c691e24bb1267fb153956daf79748727eeb7592e40680ee7d7c9187cc902776e9b3ca211a4aea0f3c10f69f15
6
+ metadata.gz: b0933b80dfa931ab145d08c9c42229913ccecde99acf6060a3efb458a3b3648d49feb54c74af817640c31d26d8f5fa5f08e2a53df20646801ba7f731f1537deb
7
+ data.tar.gz: 4b9e228b65c5edef013145cde661982b30229a1e860f22b72c57fb68de3836e8439c930c73a181c9fd33df42a349e05383b188dc7549f50b4f078236f5a94a81
data/README.md CHANGED
@@ -250,6 +250,9 @@ If you also want to create a new App Identifier on the Apple Developer Portal, c
250
250
  # Need help?
251
251
  Please submit an issue on GitHub and provide information about your setup
252
252
 
253
+ # Code of Conduct
254
+ Help us keep `sigh` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/code-of-conduct).
255
+
253
256
  # License
254
257
  This project is licensed under the terms of the MIT license. See the LICENSE file.
255
258
 
@@ -2,17 +2,17 @@ module Sigh
2
2
  class DownloadAll
3
3
  # Download all valid provisioning profiles
4
4
  def download_all
5
- Helper.log.info "Starting login with user '#{Sigh.config[:username]}'"
5
+ UI.message "Starting login with user '#{Sigh.config[:username]}'"
6
6
  Spaceship.login(Sigh.config[:username], nil)
7
7
  Spaceship.select_team
8
- Helper.log.info "Successfully logged in"
8
+ UI.message "Successfully logged in"
9
9
 
10
10
  Spaceship.provisioning_profile.all.each do |profile|
11
11
  if profile.valid?
12
- Helper.log.info "Downloading profile '#{profile.name}'...".green
12
+ UI.message "Downloading profile '#{profile.name}'..."
13
13
  download_profile(profile)
14
14
  else
15
- Helper.log.info "Skipping invalid/expired profile '#{profile.name}'".yellow
15
+ UI.important "Skipping invalid/expired profile '#{profile.name}'"
16
16
  end
17
17
  end
18
18
  end
@@ -13,7 +13,7 @@ module Sigh
13
13
  end
14
14
 
15
15
  def self.install_profile(profile)
16
- Helper.log.info "Installing provisioning profile..."
16
+ UI.message "Installing provisioning profile..."
17
17
  profile_path = File.expand_path("~") + "/Library/MobileDevice/Provisioning Profiles/"
18
18
  profile_filename = ENV["SIGH_UDID"] + ".mobileprovision"
19
19
  destination = profile_path + profile_filename
@@ -27,9 +27,9 @@ module Sigh
27
27
  FileUtils.copy profile, destination
28
28
 
29
29
  if File.exist? destination
30
- Helper.log.info "Profile installed at \"#{destination}\""
30
+ UI.success "Profile installed at \"#{destination}\""
31
31
  else
32
- raise "Failed installation of provisioning profile at location: #{destination}".red
32
+ UI.user_error!("Failed installation of provisioning profile at location: #{destination}")
33
33
  end
34
34
  end
35
35
 
@@ -40,7 +40,6 @@ module Sigh
40
40
  return command, clean_expired, clean_pattern
41
41
  end
42
42
 
43
- # rubocop:disable Metrics/AbcSize
44
43
  def self.list_profiles
45
44
  profiles = load_profiles
46
45
 
@@ -49,62 +48,61 @@ module Sigh
49
48
 
50
49
  profiles_valid = profiles.select { |profile| profile["ExpirationDate"] > now && profile["ExpirationDate"] > soon }
51
50
  if profiles_valid.count > 0
52
- Helper.log.info "Provisioning profiles installed"
53
- Helper.log.info "Valid:"
51
+ UI.message "Provisioning profiles installed"
52
+ UI.message "Valid:"
54
53
  profiles_valid.each do |profile|
55
- Helper.log.info profile["Name"].green
54
+ UI.message profile["Name"].green
56
55
  end
57
56
  end
58
57
 
59
58
  profiles_soon = profiles.select { |profile| profile["ExpirationDate"] > now && profile["ExpirationDate"] < soon }
60
59
  if profiles_soon.count > 0
61
- Helper.log.info ""
62
- Helper.log.info "Expiring within 30 day:"
60
+ UI.message ""
61
+ UI.message "Expiring within 30 day:"
63
62
  profiles_soon.each do |profile|
64
- Helper.log.info profile["Name"].yellow
63
+ UI.message profile["Name"].yellow
65
64
  end
66
65
  end
67
66
 
68
67
  profiles_expired = profiles.select { |profile| profile["ExpirationDate"] < now }
69
68
  if profiles_expired.count > 0
70
- Helper.log.info ""
71
- Helper.log.info "Expired:"
69
+ UI.message ""
70
+ UI.message "Expired:"
72
71
  profiles_expired.each do |profile|
73
- Helper.log.info profile["Name"].red
72
+ UI.message profile["Name"].red
74
73
  end
75
74
  end
76
75
 
77
- Helper.log.info ""
78
- Helper.log.info "Summary"
79
- Helper.log.info "#{profiles.count} installed profiles"
80
- Helper.log.info "#{profiles_expired.count} are expired".red
81
- Helper.log.info "#{profiles_soon.count} are valid but will expire within 30 days".yellow
82
- Helper.log.info "#{profiles_valid.count} are valid".green
76
+ UI.message ""
77
+ UI.message "Summary"
78
+ UI.message "#{profiles.count} installed profiles"
79
+ UI.message "#{profiles_expired.count} are expired".red
80
+ UI.message "#{profiles_soon.count} are valid but will expire within 30 days".yellow
81
+ UI.message "#{profiles_valid.count} are valid".green
83
82
 
84
- Helper.log.info "You can remove all expired profiles using `sigh manage -e`" if profiles_expired.count > 0
83
+ UI.message "You can remove all expired profiles using `sigh manage -e`" if profiles_expired.count > 0
85
84
  end
86
- # rubocop:enable Metrics/AbcSize
87
85
 
88
86
  def self.cleanup_profiles(expired = false, pattern = nil)
89
87
  now = DateTime.now
90
88
 
91
89
  profiles = load_profiles.select { |profile| (expired && profile["ExpirationDate"] < now) || (!pattern.nil? && profile["Name"] =~ pattern) }
92
90
 
93
- Helper.log.info "The following provisioning profiles are either expired or matches your pattern:"
91
+ UI.message "The following provisioning profiles are either expired or matches your pattern:"
94
92
  profiles.each do |profile|
95
- Helper.log.info profile["Name"].red
93
+ UI.message profile["Name"].red
96
94
  end
97
95
 
98
96
  if agree("Delete these provisioning profiles #{profiles.length}? (y/n) ", true)
99
97
  profiles.each do |profile|
100
98
  File.delete profile["Path"]
101
99
  end
102
- Helper.log.info "\n\nDeleted #{profiles.length} profiles".green
100
+ UI.success "\n\nDeleted #{profiles.length} profiles"
103
101
  end
104
102
  end
105
103
 
106
104
  def self.load_profiles
107
- Helper.log.info "Loading Provisioning profiles from ~/Library/MobileDevice/Provisioning Profiles/"
105
+ UI.message "Loading Provisioning profiles from ~/Library/MobileDevice/Provisioning Profiles/"
108
106
  profiles_path = File.expand_path("~") + "/Library/MobileDevice/Provisioning Profiles/*.mobileprovision"
109
107
  profile_paths = Dir[profiles_path]
110
108
 
data/lib/sigh/options.rb CHANGED
@@ -88,7 +88,7 @@ module Sigh
88
88
  optional: true,
89
89
  description: "Filename to use for the generated provisioning profile (must include .mobileprovision)",
90
90
  verify_block: proc do |value|
91
- raise "The output name must end with .mobileprovision".red unless value.end_with? ".mobileprovision"
91
+ UI.user_error!("The output name must end with .mobileprovision") unless value.end_with?(".mobileprovision")
92
92
  end),
93
93
  FastlaneCore::ConfigItem.new(key: :skip_fetch_profiles,
94
94
  env_name: "SIGH_SKIP_FETCH_PROFILES",
data/lib/sigh/repair.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  module Sigh
2
2
  class Repair
3
3
  def repair_all
4
- Helper.log.info "Starting login with user '#{Sigh.config[:username]}'"
4
+ UI.message "Starting login with user '#{Sigh.config[:username]}'"
5
5
  Spaceship.login(Sigh.config[:username], nil)
6
6
  Spaceship.select_team
7
- Helper.log.info "Successfully logged in"
7
+ UI.message "Successfully logged in"
8
8
 
9
9
  # Select all 'Invalid' or 'Expired' provisioning profiles
10
10
  broken_profiles = Spaceship.provisioning_profile.all.find_all do |profile|
@@ -12,19 +12,19 @@ module Sigh
12
12
  end
13
13
 
14
14
  if broken_profiles.count == 0
15
- Helper.log.info "All provisioning profiles are valid, nothing to do".green
15
+ UI.success "All provisioning profiles are valid, nothing to do"
16
16
  return
17
17
  end
18
18
 
19
- Helper.log.info "Going to repair #{broken_profiles.count} provisioning profiles".green
19
+ UI.success "Going to repair #{broken_profiles.count} provisioning profiles"
20
20
 
21
21
  # Iterate over all broken profiles and repair them
22
22
  broken_profiles.each do |profile|
23
- Helper.log.info "Repairing profile '#{profile.name}'..."
23
+ UI.message "Repairing profile '#{profile.name}'..."
24
24
  profile.repair! # yes, that's all you need to repair a profile
25
25
  end
26
26
 
27
- Helper.log.info "Successfully repaired #{broken_profiles.count} provisioning profiles".green
27
+ UI.success "Successfully repaired #{broken_profiles.count} provisioning profiles"
28
28
  end
29
29
  end
30
30
  end
data/lib/sigh/resign.rb CHANGED
@@ -41,10 +41,10 @@ module Sigh
41
41
  puts `#{command}`
42
42
 
43
43
  if $?.to_i == 0
44
- Helper.log.info "Successfully signed #{ipa}!".green
44
+ UI.success "Successfully signed #{ipa}!"
45
45
  true
46
46
  else
47
- Helper.log.fatal "Something went wrong while code signing #{ipa}".red
47
+ UI.error "Something went wrong while code signing #{ipa}"
48
48
  false
49
49
  end
50
50
  end
@@ -76,7 +76,7 @@ module Sigh
76
76
 
77
77
  def find_signing_identity(signing_identity)
78
78
  until installed_identies.include?(signing_identity)
79
- Helper.log.error "Couldn't find signing identity '#{signing_identity}'."
79
+ UI.error "Couldn't find signing identity '#{signing_identity}'."
80
80
  signing_identity = ask_for_signing_identity
81
81
  end
82
82
 
@@ -90,19 +90,21 @@ module Sigh
90
90
  end
91
91
 
92
92
  def validate_resign_path(resign_path)
93
- raise 'Could not find resign.sh file. Please try re-installing the gem.'.red unless File.exist?(resign_path)
93
+ UI.user_error!('Could not find resign.sh file. Please try re-installing the gem') unless File.exist?(resign_path)
94
94
  end
95
95
 
96
96
  def validate_ipa_file(ipa)
97
- raise "ipa file could not be found or is not an ipa file (#{ipa})".red unless File.exist?(ipa) && ipa.end_with?('.ipa')
97
+ UI.user_error!("ipa file could not be found or is not an ipa file (#{ipa})") unless File.exist?(ipa) && ipa.end_with?('.ipa')
98
98
  end
99
99
 
100
100
  def validate_provisioning_file(provisioning_profile)
101
- raise "Provisioning profile file could not be found or is not a .mobileprovision file (#{provisioning_profile})".red unless File.exist?(provisioning_profile) && provisioning_profile.end_with?('.mobileprovision')
101
+ unless File.exist?(provisioning_profile) && provisioning_profile.end_with?('.mobileprovision')
102
+ UI.user_error!("Provisioning profile file could not be found or is not a .mobileprovision file (#{provisioning_profile})")
103
+ end
102
104
  end
103
105
 
104
106
  def print_available_identities
105
- Helper.log.info "Available identities: \n\t#{installed_identies.join("\n\t")}\n"
107
+ UI.message "Available identities: \n\t#{installed_identies.join("\n\t")}\n"
106
108
  end
107
109
 
108
110
  def ask_for_signing_identity
data/lib/sigh/runner.rb CHANGED
@@ -11,35 +11,35 @@ module Sigh
11
11
  hide_keys: [:output_path],
12
12
  title: "Summary for sigh #{Sigh::VERSION}")
13
13
 
14
- Helper.log.info "Starting login with user '#{Sigh.config[:username]}'"
14
+ UI.message "Starting login with user '#{Sigh.config[:username]}'"
15
15
  Spaceship.login(Sigh.config[:username], nil)
16
16
  Spaceship.select_team
17
- Helper.log.info "Successfully logged in"
17
+ UI.message "Successfully logged in"
18
18
 
19
19
  profiles = [] if Sigh.config[:skip_fetch_profiles]
20
20
  profiles ||= fetch_profiles # download the profile if it's there
21
21
 
22
22
  if profiles.count > 0
23
- Helper.log.info "Found #{profiles.count} matching profile(s)".yellow
23
+ UI.success "Found #{profiles.count} matching profile(s)"
24
24
  profile = profiles.first
25
25
 
26
26
  if Sigh.config[:force]
27
27
  if profile_type == Spaceship.provisioning_profile::AppStore or profile_type == Spaceship.provisioning_profile::InHouse
28
- Helper.log.info "Updating the provisioning profile".yellow
28
+ UI.important "Updating the provisioning profile"
29
29
  else
30
- Helper.log.info "Updating the profile to include all devices".yellow
30
+ UI.important "Updating the profile to include all devices"
31
31
  profile.devices = Spaceship.device.all_for_profile_type(profile.type)
32
32
  end
33
33
 
34
34
  profile = profile.update! # assign it, as it's a new profile
35
35
  end
36
36
  else
37
- Helper.log.info "No existing profiles found, that match the certificates you have installed, creating a new one for you".yellow
37
+ UI.important "No existing profiles found, that match the certificates you have installed, creating a new one for you"
38
38
  ensure_app_exists!
39
39
  profile = create_profile!
40
40
  end
41
41
 
42
- raise "Something went wrong fetching the latest profile".red unless profile
42
+ UI.user_error!("Something went wrong fetching the latest profile") unless profile
43
43
 
44
44
  if profile_type == Spaceship.provisioning_profile.in_house
45
45
  ENV["SIGH_PROFILE_ENTERPRISE"] = "1"
@@ -64,7 +64,7 @@ module Sigh
64
64
 
65
65
  # Fetches a profile matching the user's search requirements
66
66
  def fetch_profiles
67
- Helper.log.info "Fetching profiles..."
67
+ UI.message "Fetching profiles..."
68
68
  results = profile_type.find_by_bundle_id(Sigh.config[:app_identifier]).find_all(&:valid?)
69
69
 
70
70
  # Take the provisioning profile name into account
@@ -100,12 +100,12 @@ module Sigh
100
100
 
101
101
  unless Sigh.config[:skip_fetch_profiles]
102
102
  if Spaceship.provisioning_profile.all.find { |p| p.name == name }
103
- Helper.log.error "The name '#{name}' is already taken, using another one."
103
+ UI.error "The name '#{name}' is already taken, using another one."
104
104
  name += " #{Time.now.to_i}"
105
105
  end
106
106
  end
107
107
 
108
- Helper.log.info "Creating new provisioning profile for '#{Sigh.config[:app_identifier]}' with name '#{name}'".yellow
108
+ UI.important "Creating new provisioning profile for '#{Sigh.config[:app_identifier]}' with name '#{name}'"
109
109
  profile = profile_type.create!(name: name,
110
110
  bundle_id: bundle_id,
111
111
  certificate: cert)
@@ -137,11 +137,11 @@ module Sigh
137
137
  end
138
138
 
139
139
  if certificates.count > 1 and !Sigh.config[:development]
140
- Helper.log.info "Found more than one code signing identity. Choosing the first one. Check out `sigh --help` to see all available options.".yellow
141
- Helper.log.info "Available Code Signing Identities for current filters:".green
140
+ UI.important "Found more than one code signing identity. Choosing the first one. Check out `sigh --help` to see all available options."
141
+ UI.important "Available Code Signing Identities for current filters:"
142
142
  certificates.each do |c|
143
143
  str = ["\t- Name:", c.owner_name, "- ID:", c.id + "- Expires", c.expires.strftime("%d/%m/%Y")].join(" ")
144
- Helper.log.info str.green
144
+ UI.message str.green
145
145
  end
146
146
  end
147
147
 
@@ -149,8 +149,8 @@ module Sigh
149
149
  filters = ""
150
150
  filters << "Owner Name: '#{Sigh.config[:cert_owner_name]}' " if Sigh.config[:cert_owner_name]
151
151
  filters << "Certificate ID: '#{Sigh.config[:cert_id]}' " if Sigh.config[:cert_id]
152
- Helper.log.info "No certificates for filter: #{filters}".yellow if filters.length > 0
153
- raise "Could not find a matching code signing identity for #{profile_type}. You can use cert to generate one (https://github.com/fastlane/cert)".red
152
+ UI.important "No certificates for filter: #{filters}" if filters.length > 0
153
+ UI.user_error!("Could not find a matching code signing identity for #{profile_type}. You can use cert to generate one (https://github.com/fastlane/cert)")
154
154
  end
155
155
 
156
156
  return certificates if Sigh.config[:development] # development profiles support multiple certificates
@@ -160,7 +160,7 @@ module Sigh
160
160
 
161
161
  # Downloads and stores the provisioning profile
162
162
  def download_profile(profile)
163
- Helper.log.info "Downloading provisioning profile...".yellow
163
+ UI.important "Downloading provisioning profile..."
164
164
  profile_name ||= "#{profile.class.pretty_type}_#{Sigh.config[:app_identifier]}.mobileprovision" # default name
165
165
  profile_name += '.mobileprovision' unless profile_name.include? 'mobileprovision'
166
166
 
@@ -170,7 +170,7 @@ module Sigh
170
170
  f.write(profile.download)
171
171
  end
172
172
 
173
- Helper.log.info "Successfully downloaded provisioning profile...".green
173
+ UI.success "Successfully downloaded provisioning profile..."
174
174
  return output_path
175
175
  end
176
176
 
@@ -178,21 +178,21 @@ module Sigh
178
178
  def ensure_app_exists!
179
179
  return if Spaceship::App.find(Sigh.config[:app_identifier])
180
180
  print_produce_command(Sigh.config)
181
- raise "Could not find App with App Identifier '#{Sigh.config[:app_identifier]}'"
181
+ UI.user_error!("Could not find App with App Identifier '#{Sigh.config[:app_identifier]}'")
182
182
  end
183
183
 
184
184
  def print_produce_command(config)
185
- Helper.log.info ""
186
- Helper.log.info "==========================================".yellow
187
- Helper.log.info "Could not find App ID with bundle identifier '#{config[:app_identifier]}'"
188
- Helper.log.info "You can easily generate a new App ID on the Developer Portal using 'produce':"
189
- Helper.log.info ""
190
- Helper.log.info "produce -u #{config[:username]} -a #{config[:app_identifier]} --skip_itc".yellow
191
- Helper.log.info ""
192
- Helper.log.info "You will be asked for any missing information, like the full name of your app"
193
- Helper.log.info "If the app should also be created on iTunes Connect, remove the " + "--skip_itc".yellow + " from the command above"
194
- Helper.log.info "==========================================".yellow
195
- Helper.log.info ""
185
+ UI.message ""
186
+ UI.message "==========================================".yellow
187
+ UI.message "Could not find App ID with bundle identifier '#{config[:app_identifier]}'"
188
+ UI.message "You can easily generate a new App ID on the Developer Portal using 'produce':"
189
+ UI.message ""
190
+ UI.message "produce -u #{config[:username]} -a #{config[:app_identifier]} --skip_itc".yellow
191
+ UI.message ""
192
+ UI.message "You will be asked for any missing information, like the full name of your app"
193
+ UI.message "If the app should also be created on iTunes Connect, remove the " + "--skip_itc".yellow + " from the command above"
194
+ UI.message "==========================================".yellow
195
+ UI.message ""
196
196
  end
197
197
  end
198
198
  end
data/lib/sigh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sigh
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sigh
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-22 00:00:00.000000000 Z
11
+ date: 2016-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastlane_core
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.30.0
19
+ version: 0.36.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 1.0.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.30.0
29
+ version: 0.36.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.0.0