fastlane_core 0.36.9 → 0.37.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fastlane_core/configuration/commander_generator.rb +52 -16
- data/lib/fastlane_core/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69d9a797fc7e20a98839ae7e0296d7215f95e08c
|
4
|
+
data.tar.gz: de39a88d7fd8c42a6d1988c291376d5eba49603f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44ece7894fb065c92ab2909d63d53760bb00386da1e836eeaa2ca74200363aa57170f5ba6790dbbe9d0cad4e7721426706e0a06728937e5c706daf6eba402ed9
|
7
|
+
data.tar.gz: 73a778016cf3e8dcb98a9bd4360c7b1a2b7891f1824718fca1c79d8fd08fdf92d269333b1c80791c2cc3db4c03ef2a7e1994487d47e1bd9df4f3ddff0b409ca1
|
@@ -9,30 +9,66 @@ module FastlaneCore
|
|
9
9
|
# First, enable `always_trace`, to show the stack trace
|
10
10
|
always_trace!
|
11
11
|
|
12
|
-
|
12
|
+
used_switches = []
|
13
13
|
options.each do |option|
|
14
|
-
next if option.description.to_s.
|
14
|
+
next if option.description.to_s.empty? # "private" options
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
short_option = option.short_option
|
19
|
-
|
20
|
-
raise "Short option #{short_option} already taken for key #{option.key}".red if short_codes.include? short_option
|
21
|
-
raise "-v is already used for the version (key #{option.key})".red if short_option == "-v"
|
22
|
-
raise "-h is already used for the help screen (key #{option.key})".red if short_option == "-h"
|
23
|
-
raise "-t is already used for the trace screen (key #{option.key})".red if short_option == "-t"
|
16
|
+
short_switch = option.short_option
|
17
|
+
validate_short_switch(used_switches, short_switch)
|
24
18
|
|
25
|
-
|
19
|
+
type = option.data_type
|
26
20
|
|
27
|
-
#
|
28
|
-
#
|
21
|
+
# This is an important bit of trickery to solve the boolean option situation.
|
22
|
+
#
|
23
|
+
# Typically, boolean command line flags do not accept trailing values. If the flag
|
24
|
+
# is present, the value is true, if it is missing, the value is false. fastlane
|
25
|
+
# supports this style of flag. For example, you can specify a flag like `--clean`,
|
26
|
+
# and the :clean option will be true.
|
27
|
+
#
|
28
|
+
# However, fastlane also supports another boolean flag style that accepts trailing
|
29
|
+
# values much like options for Strings and other value types. That looks like
|
30
|
+
# `--include_bitcode false` The problem is that this does not work out of the box
|
31
|
+
# for Commander and OptionsParser. So, we need to get tricky.
|
32
|
+
#
|
33
|
+
# The value_appendix below acts as a placeholder in the switch definition that
|
34
|
+
# states that we expect to have a trailing value for our options. When an option
|
35
|
+
# declares a data type, we use the name of that data type in all caps like:
|
36
|
+
# "--devices ARRAY". When the data type is nil, this implies that we're going
|
37
|
+
# to be doing some special handling on that value. One special thing we do
|
38
|
+
# automatically in Configuration is to coerce special Strings into boolean values.
|
39
|
+
#
|
40
|
+
# If the data type is nil, the trick we do is to specify a value placeholder, but
|
41
|
+
# we wrap it in [] brackets to mark it as optional. That means that the trailing
|
42
|
+
# value may or may not be present for this flag. If the flag is present, but the
|
43
|
+
# value is not, we get a value of `true`. Perfect for the boolean flag base-case!
|
44
|
+
# If the value is there, we'll actually get it back as a String, which we can
|
45
|
+
# later coerce into a boolean.
|
46
|
+
#
|
47
|
+
# In this way we support handling boolean flags with or without trailing values.
|
48
|
+
value_appendix = (type || '[VALUE]').to_s.upcase
|
49
|
+
long_switch = "--#{option.key} #{value_appendix}"
|
29
50
|
|
30
|
-
flag = "--#{option.key} #{appendix}"
|
31
51
|
description = option.description
|
32
|
-
description += " (#{option.env_name})"
|
52
|
+
description += " (#{option.env_name})" unless option.env_name.to_s.empty?
|
33
53
|
|
34
|
-
|
54
|
+
# This is the sole call to Commander to set up the option we've been building.
|
55
|
+
#
|
56
|
+
# If we don't have a data type for this option, we tell it to act like a String.
|
57
|
+
# This allows us to get a reasonable value for boolean options that can be
|
58
|
+
# automatically coerced or otherwise handled by the ConfigItem for others.
|
59
|
+
global_option(short_switch, long_switch, (type || String), description)
|
35
60
|
end
|
36
61
|
end
|
62
|
+
|
63
|
+
def validate_short_switch(used_switches, short_switch)
|
64
|
+
return if short_switch.nil?
|
65
|
+
|
66
|
+
raise "Short option #{short_switch} already taken for key #{option.key}".red if used_switches.include?(short_switch)
|
67
|
+
raise "-v is already used for the version (key #{option.key})".red if short_switch == "-v"
|
68
|
+
raise "-h is already used for the help screen (key #{option.key})".red if short_switch == "-h"
|
69
|
+
raise "-t is already used for the trace screen (key #{option.key})".red if short_switch == "-t"
|
70
|
+
|
71
|
+
used_switches << short_switch
|
72
|
+
end
|
37
73
|
end
|
38
74
|
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.
|
4
|
+
version: 0.37.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-
|
11
|
+
date: 2016-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -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.
|
388
|
+
rubygems_version: 2.2.2
|
389
389
|
signing_key:
|
390
390
|
specification_version: 4
|
391
391
|
summary: Contains all shared code/dependencies of the fastlane.tools
|