fastlane_core 0.37.0 → 0.38.0

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: 69d9a797fc7e20a98839ae7e0296d7215f95e08c
4
- data.tar.gz: de39a88d7fd8c42a6d1988c291376d5eba49603f
3
+ metadata.gz: fd90b6bcd3c31ba350d8f5c98f1f124b69658a2f
4
+ data.tar.gz: 0989522b062f11d611db247372027624e56773f8
5
5
  SHA512:
6
- metadata.gz: 44ece7894fb065c92ab2909d63d53760bb00386da1e836eeaa2ca74200363aa57170f5ba6790dbbe9d0cad4e7721426706e0a06728937e5c706daf6eba402ed9
7
- data.tar.gz: 73a778016cf3e8dcb98a9bd4360c7b1a2b7891f1824718fca1c79d8fd08fdf92d269333b1c80791c2cc3db4c03ef2a7e1994487d47e1bd9df4f3ddff0b409ca1
6
+ metadata.gz: 4c5170391b985a73e8c2e63e6d6a71fe9844ca26a1643bdc3deb5b355702d136e287902dcfd5fa2a986973ac77c012453308c4632468eb4c836ffb5e7b057fea
7
+ data.tar.gz: 224ccc27980a142b2104b9c5d2faf8c2ec3283ef3a01aaf6403c495f0d4717d38b46f4321328ba319e01014eb3b11b3947c9cc9c6087cb6bfebceba09254ed35
data/README.md CHANGED
@@ -1,24 +1,24 @@
1
1
  <h3 align="center">
2
- <a href="https://github.com/fastlane/fastlane">
3
- <img src="assets/fastlane.png" width="150" />
2
+ <a href="https://github.com/fastlane/fastlane/tree/master/fastlane">
3
+ <img src="../fastlane/assets/fastlane.png" width="150" />
4
4
  <br />
5
5
  fastlane
6
6
  </a>
7
7
  </h3>
8
8
  <p align="center">
9
- <a href="https://github.com/fastlane/deliver">deliver</a> &bull;
10
- <a href="https://github.com/fastlane/snapshot">snapshot</a> &bull;
11
- <a href="https://github.com/fastlane/frameit">frameit</a> &bull;
12
- <a href="https://github.com/fastlane/pem">pem</a> &bull;
13
- <a href="https://github.com/fastlane/sigh">sigh</a> &bull;
14
- <a href="https://github.com/fastlane/produce">produce</a> &bull;
15
- <a href="https://github.com/fastlane/cert">cert</a> &bull;
16
- <a href="https://github.com/fastlane/spaceship">spaceship</a> &bull;
17
- <a href="https://github.com/fastlane/pilot">pilot</a> &bull;
9
+ <a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> &bull;
10
+ <a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> &bull;
11
+ <a href="https://github.com/fastlane/fastlane/tree/master/frameit">frameit</a> &bull;
12
+ <a href="https://github.com/fastlane/fastlane/tree/master/pem">pem</a> &bull;
13
+ <a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> &bull;
14
+ <a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> &bull;
15
+ <a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> &bull;
16
+ <a href="https://github.com/fastlane/fastlane/tree/master/spaceship">spaceship</a> &bull;
17
+ <a href="https://github.com/fastlane/fastlane/tree/master/pilot">pilot</a> &bull;
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
- <a href="https://github.com/fastlane/gym">gym</a> &bull;
20
- <a href="https://github.com/fastlane/scan">scan</a> &bull;
21
- <a href="https://github.com/fastlane/match">match</a>
19
+ <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
+ <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
22
22
  </p>
23
23
  -------
24
24
 
@@ -26,9 +26,9 @@ FastlaneCore
26
26
  ============
27
27
 
28
28
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
29
- [![License](http://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane_core/blob/master/LICENSE)
29
+ [![License](http://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/fastlane_core/LICENSE)
30
30
  [![Gem](https://img.shields.io/gem/v/fastlane_core.svg?style=flat)](http://rubygems.org/gems/fastlane_core)
31
- [![Build Status](https://img.shields.io/travis/fastlane/fastlane_core/master.svg?style=flat)](https://travis-ci.org/fastlane/fastlane_core)
31
+ [![Build Status](https://img.shields.io/circleci/project/fastlane/fastlane/master.svg?style=flat)](https://circleci.com/gh/fastlane/fastlane)
32
32
 
33
33
  All shared code of the fastlane tools is stored in this repository.
34
34
 
@@ -47,7 +47,7 @@ This gem contains all shared classes and code:
47
47
  You can hide the inline changelog by setting the `FASTLANE_HIDE_CHANGELOG` environment variable
48
48
 
49
49
  # Code of Conduct
50
- Help us keep `fastlane` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/code-of-conduct).
50
+ Help us keep `fastlane` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
51
51
 
52
52
  # License
53
53
  This project is licensed under the terms of the MIT license. See the LICENSE file.
@@ -11,11 +11,9 @@ module FastlaneCore
11
11
  end
12
12
 
13
13
  # Legacy Method, use `installed?` instead
14
- # rubocop:disable Style/PredicateName
15
14
  def self.is_installed?(path)
16
15
  installed?(path)
17
16
  end
18
- # rubocop:enable Style/PredicateName
19
17
 
20
18
  def self.installed_identies
21
19
  install_wwdr_certificate unless wwdr_certificate_installed?
@@ -44,24 +44,27 @@ module FastlaneCore
44
44
 
45
45
  begin
46
46
  PTY.spawn(command) do |stdin, stdout, pid|
47
- stdin.each do |l|
48
- line = l.strip # strip so that \n gets removed
49
- output << line
47
+ begin
48
+ stdin.each do |l|
49
+ line = l.strip # strip so that \n gets removed
50
+ output << line
50
51
 
51
- next unless print_all
52
+ next unless print_all
52
53
 
53
- # Prefix the current line with a string
54
- prefix.each do |element|
55
- line = element[:prefix] + line if element[:block] && element[:block].call(line)
56
- end
54
+ # Prefix the current line with a string
55
+ prefix.each do |element|
56
+ line = element[:prefix] + line if element[:block] && element[:block].call(line)
57
+ end
57
58
 
58
- UI.command_output(line)
59
+ UI.command_output(line)
60
+ end
61
+ rescue Errno::EIO
62
+ # This is expected on some linux systems, that indicates that the subcommand finished
63
+ # and we kept trying to read, ignore ix
64
+ ensure
65
+ Process.wait(pid)
59
66
  end
60
- Process.wait(pid)
61
67
  end
62
- rescue Errno::EIO
63
- # This is expected on some linux systems, that indicates that the subcommand finished
64
- # and we kept trying to read, ignore it
65
68
  rescue => ex
66
69
  # This could happen when the environment is wrong:
67
70
  # > invalid byte sequence in US-ASCII (ArgumentError)
@@ -51,12 +51,19 @@ module FastlaneCore
51
51
  description = option.description
52
52
  description += " (#{option.env_name})" unless option.env_name.to_s.empty?
53
53
 
54
- # This is the sole call to Commander to set up the option we've been building.
54
+ # We compact this array here to remove the short_switch variable if it is nil.
55
+ # Passing a nil value to global_option has been shown to create problems with
56
+ # option parsing!
57
+ #
58
+ # See: https://github.com/fastlane/fastlane/tree/master/fastlane_core
55
59
  #
56
60
  # If we don't have a data type for this option, we tell it to act like a String.
57
61
  # This allows us to get a reasonable value for boolean options that can be
58
62
  # automatically coerced or otherwise handled by the ConfigItem for others.
59
- global_option(short_switch, long_switch, (type || String), description)
63
+ args = [short_switch, long_switch, (type || String), description].compact
64
+
65
+ # This is the call to Commander to set up the option we've been building.
66
+ global_option(*args)
60
67
  end
61
68
  end
62
69
 
@@ -36,7 +36,7 @@ module FastlaneCore
36
36
  return unless self.config._values[method_sym].to_s.empty?
37
37
 
38
38
  value = arguments.first
39
- value = block.call if value.nil? && block_given?
39
+ value = yield if value.nil? && block_given?
40
40
 
41
41
  self.config[method_sym] = value unless value.nil?
42
42
  else
@@ -73,7 +73,6 @@ module FastlaneCore
73
73
  end
74
74
 
75
75
  # Use Helper.test? and Helper.ci? instead (legacy calls)
76
- # rubocop:disable Style/PredicateName
77
76
  def self.is_test?
78
77
  self.test?
79
78
  end
@@ -85,7 +84,6 @@ module FastlaneCore
85
84
  def self.is_mac?
86
85
  self.mac?
87
86
  end
88
- # rubocop:enable Style/PredicateName
89
87
 
90
88
  # Do we want to disable the colored output?
91
89
  def self.colors_disabled?
@@ -14,7 +14,7 @@ module FastlaneCore
14
14
  workspace = Dir["./*.xcworkspace"]
15
15
  if workspace.count > 1
16
16
  puts "Select Workspace: "
17
- config[:workspace] = choose(*(workspace))
17
+ config[:workspace] = choose(*workspace)
18
18
  elsif !workspace.first.nil?
19
19
  config[:workspace] = workspace.first
20
20
  end
@@ -26,7 +26,7 @@ module FastlaneCore
26
26
  project = Dir["./*.xcodeproj"]
27
27
  if project.count > 1
28
28
  puts "Select Project: "
29
- config[:project] = choose(*(project))
29
+ config[:project] = choose(*project)
30
30
  elsif !project.first.nil?
31
31
  config[:project] = project.first
32
32
  end
@@ -126,7 +126,7 @@ module FastlaneCore
126
126
  raise "Multiple schemes found".red
127
127
  else
128
128
  puts "Select Scheme: "
129
- options[:scheme] = choose(*(schemes))
129
+ options[:scheme] = choose(*schemes)
130
130
  end
131
131
  else
132
132
  Helper.log.error "Couldn't find any schemes in this project, make sure that the scheme is shared if you are using a workspace".red
@@ -24,8 +24,8 @@ module FastlaneCore
24
24
  end
25
25
 
26
26
  output.split(/\n/).each do |line|
27
- next if line.match(/^== /)
28
- if line.match(/^-- /)
27
+ next if line =~ /^== /
28
+ if line =~ /^-- /
29
29
  (os_type, os_version) = line.gsub(/-- (.*) --/, '\1').split
30
30
  else
31
31
  # iPad 2 (0EDE6AFC-3767-425A-9658-AAA30A60F212) (Shutdown)
@@ -36,18 +36,41 @@ module Commander
36
36
  OptionParser::MissingArgument => e
37
37
  abort e.to_s
38
38
  rescue FastlaneCore::Interface::FastlaneError => e # user_error!
39
- error_message = "\n[!] #{e}".red
40
- if $verbose # with stack trace
41
- raise e, "[!] #{e.message}".red, e.backtrace
42
- else
43
- abort error_message # without stack trace
44
- end
39
+ display_user_error!(e, e.message)
45
40
  rescue => e # high chance this is actually FastlaneCore::Interface::FastlaneCrash, but can be anything else
41
+ handle_unknown_error!(e)
42
+ end
43
+ end
44
+
45
+ def handle_unknown_error!(e)
46
+ # Some spaceship exception classes implement #preferred_error_info in order to share error info
47
+ # that we'd rather display instead of crashing with a stack trace. However, fastlane_core and
48
+ # spaceship can not know about each other's classes! To make this information passing work, we
49
+ # use a bit of Ruby duck-typing to check whether the unknown exception type implements the right
50
+ # method. If so, we'll present any returned error info in the manner of a user_error!
51
+ error_info = e.respond_to?(:preferred_error_info) ? e.preferred_error_info : nil
52
+
53
+ if error_info
54
+ error_info = error_info.join("\n\t") if error_info.kind_of?(Array)
55
+ display_user_error!(e, error_info)
56
+ else
46
57
  FastlaneCore::CrashReporting.handle_crash(e)
47
58
  # From https://stackoverflow.com/a/4789702/445598
48
59
  # We do this to make the actual error message red and therefore more visible
49
- raise e, "[!] #{e.message}".red, e.backtrace
60
+ reraise_formatted!(e, e.message)
50
61
  end
51
62
  end
63
+
64
+ def display_user_error!(e, message)
65
+ if $verbose # with stack trace
66
+ reraise_formatted!(e, message)
67
+ else
68
+ abort "\n[!] #{message}".red # without stack trace
69
+ end
70
+ end
71
+
72
+ def reraise_formatted!(e, message)
73
+ raise e, "[!] #{message}".red, e.backtrace
74
+ end
52
75
  end
53
76
  end
@@ -93,7 +93,7 @@ module FastlaneCore
93
93
  verify_interactive!(message)
94
94
 
95
95
  important(message)
96
- choose(*(options))
96
+ choose(*options)
97
97
  end
98
98
 
99
99
  def password(message)
@@ -1,3 +1,3 @@
1
1
  module FastlaneCore
2
- VERSION = "0.37.0".freeze
2
+ VERSION = "0.38.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.37.0
4
+ version: 0.38.0
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-03-01 00:00:00.000000000 Z
11
+ date: 2016-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -302,14 +302,14 @@ dependencies:
302
302
  requirements:
303
303
  - - "~>"
304
304
  - !ruby/object:Gem::Version
305
- version: 0.35.1
305
+ version: 0.38.0
306
306
  type: :development
307
307
  prerelease: false
308
308
  version_requirements: !ruby/object:Gem::Requirement
309
309
  requirements:
310
310
  - - "~>"
311
311
  - !ruby/object:Gem::Version
312
- version: 0.35.1
312
+ version: 0.38.0
313
313
  - !ruby/object:Gem::Dependency
314
314
  name: danger
315
315
  requirement: !ruby/object:Gem::Requirement
@@ -385,7 +385,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
385
385
  version: '0'
386
386
  requirements: []
387
387
  rubyforge_project:
388
- rubygems_version: 2.2.2
388
+ rubygems_version: 2.4.5.1
389
389
  signing_key:
390
390
  specification_version: 4
391
391
  summary: Contains all shared code/dependencies of the fastlane.tools