branch_io_cli 0.12.4 → 0.12.5

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
  SHA256:
3
- metadata.gz: 73ff4ce1216540062fb5538541b2872eec3acdebb1471fa7a8b24d2154a3fcfe
4
- data.tar.gz: d4b975f00a121acb6ea440e0fdd25de305a00e82625a2469742a07b790cb64ed
3
+ metadata.gz: 48e336c69b9c5ad8f7ab8de92720aa3b1c9cb7d5d207d21d5555dd91c3ca3e32
4
+ data.tar.gz: 180282031893b9e7b7277ceb3e2bc11143f803879ad094e3d5290e4bfca6df66
5
5
  SHA512:
6
- metadata.gz: eeaf64c3d4944edcf6edd1d97ebc284c5bd60a5ef6770fbba2fabef05874982cd1add06aee1cd735de01d4dc21c2a46c4b5d883f3d915f95e556bfd90b46d35c
7
- data.tar.gz: db25f0205240eb879fd92d76ec5f959f62c1f26d7bd2b96d96425c1c4476aa1d6ca8f3af49ade8bdd3df7024371745081beade2f1c4f6537e17d44e2dba2be14
6
+ metadata.gz: 3187f68f3c2ed85eb3b57ae2cd21cb58d4f9d57b04062fa157ac8f9fce77724c7b0d37d82733f9d520ba72e34172311825fd2dcc7d24676d23b799c4aa21a214
7
+ data.tar.gz: db654aa13ac717e8294cbe0a66b6f199490642ec8a47180a8e6bfbf0bc8f9acc2ef113a791b2cf8986c63c602ac16861c2ec0da8df997a1d971fdb578fd2c373
data/README.md CHANGED
@@ -16,6 +16,8 @@ This is a preliminary release of this gem. Please report any problems by opening
16
16
  See also the [Branch Fastlane plugin](https://github.com/BranchMetrics/fastlane-plugin-branch), which offers
17
17
  the same support via Fastlane.
18
18
 
19
+ ![CLI in action](./assets/branch3.gif)
20
+
19
21
  ## Getting started
20
22
 
21
23
  ```bash
@@ -150,7 +152,7 @@ See https://github.com/BranchMetrics/branch_io_cli#setup-command for more inform
150
152
  |--target MyAppTarget|Name of a target to modify in the Xcode project|BRANCH_TARGET|
151
153
  |--podfile /path/to/Podfile|Path to the Podfile for the project|BRANCH_PODFILE|
152
154
  |--cartfile /path/to/Cartfile|Path to the Cartfile for the project|BRANCH_CARTFILE|
153
- |--carthage-command <command>|Command to run when installing from Carthage (default: update --platform ios)|BRANCH_CARTHAGE_COMMAND|
155
+ |--carthage-command bootstrap --no-use-binaries|Command to run when installing from Carthage (default: update --platform ios)|BRANCH_CARTHAGE_COMMAND|
154
156
  |--frameworks AdSupport,CoreSpotlight,SafariServices|Comma-separated list of system frameworks to add to the project|BRANCH_FRAMEWORKS|
155
157
  |--[no-]pod-repo-update|Update the local podspec repo before installing (default: yes)|BRANCH_POD_REPO_UPDATE|
156
158
  |--[no-]validate|Validate Universal Link configuration (default: yes)|BRANCH_VALIDATE|
@@ -283,6 +285,7 @@ building.
283
285
  |-H, --[no-]header-only|Write a report header to standard output and exit (default: no)|BRANCH_HEADER_ONLY|
284
286
  |--[no-]pod-repo-update|Update the local podspec repo before installing (default: yes)|BRANCH_POD_REPO_UPDATE|
285
287
  |-o, --out ./report.txt|Report output path (default: ./report.txt)|BRANCH_REPORT_PATH|
288
+ |--[no-]confirm|Confirm before running certain commands (default: yes)|BRANCH_CONFIRM|
286
289
 
287
290
 
288
291
 
@@ -15,7 +15,7 @@ _branch_io_complete()
15
15
 
16
16
  setup_opts="-L --live-key -T --test-key -D --domains --app-link-subdomain -U --uri-scheme -s --setting --test-configurations --xcodeproj --target --podfile --cartfile --carthage-command --frameworks --no-pod-repo-update --no-validate --force --no-add-sdk --no-patch-source --commit --no-confirm"
17
17
 
18
- report_opts="--workspace --xcodeproj --scheme --target --configuration --sdk --podfile --cartfile --no-clean -H --header-only --no-pod-repo-update -o --out"
18
+ report_opts="--workspace --xcodeproj --scheme --target --configuration --sdk --podfile --cartfile --no-clean -H --header-only --no-pod-repo-update -o --out --no-confirm"
19
19
 
20
20
  validate_opts="-D --domains --xcodeproj --target --configurations"
21
21
 
@@ -33,11 +33,12 @@ module BranchIOCLI
33
33
  end
34
34
 
35
35
  def write_report(report)
36
- report.write "Branch.io Xcode build report v #{VERSION} #{DateTime.now}\n\n"
36
+ report.write "Branch.io Xcode build report v #{VERSION} #{Time.now}\n\n"
37
37
  report.write "#{config.report_configuration}\n"
38
38
  report.write "#{report_helper.report_header}\n"
39
39
 
40
40
  report_helper.pod_install_if_required report
41
+ report_helper.carthage_bootstrap_if_required report
41
42
 
42
43
  # run xcodebuild -list
43
44
  report.sh(*report_helper.base_xcodebuild_cmd, "-list")
@@ -213,9 +213,7 @@ EOF
213
213
  end
214
214
 
215
215
  # Validate. Prompt if not valid.
216
- while !buildfile_path || !validate_buildfile_at_path(buildfile_path, filename)
217
- buildfile_path = ask "Please enter the path to your #{filename}: "
218
- end
216
+ buildfile_path = ask "Please enter the path to your #{filename}: " while !buildfile_path || !validate_buildfile_at_path(buildfile_path, filename)
219
217
 
220
218
  @sdk_integration_mode = filename == "Podfile" ? :cocoapods : :carthage
221
219
  end
@@ -470,7 +468,9 @@ EOF
470
468
  new_value = ask "Please enter one or more of the above, separated by commas: " do |q|
471
469
  q.readline = true
472
470
  q.completion = valid_values
473
- end.split(",") # comma-split with Array not working
471
+ end
472
+
473
+ new_value = new_value.split(",") # comma-split with ask("...", Array) not working
474
474
  elsif option.type.nil?
475
475
  new_value = Helper::Util.confirm "#{option.label}? ", value
476
476
  else
@@ -77,6 +77,12 @@ module BranchIOCLI
77
77
  example: "./report.txt",
78
78
  type: String,
79
79
  env_name: "BRANCH_REPORT_PATH"
80
+ ),
81
+ Option.new(
82
+ name: :confirm,
83
+ description: "Confirm before running certain commands",
84
+ default_value: true,
85
+ skip_confirmation: true
80
86
  )
81
87
  ]
82
88
  end
@@ -57,7 +57,7 @@ module BranchIOCLI
57
57
  example: "config1,config2",
58
58
  type: Array,
59
59
  negatable: true,
60
- valid_values_proc: ->() { Configuration.current.xcodeproj.build_configurations.map(&:name) }
60
+ valid_values_proc: -> { Configuration.current.xcodeproj.build_configurations.map(&:name) }
61
61
  ),
62
62
  Option.new(
63
63
  name: :xcodeproj,
@@ -73,7 +73,7 @@ module BranchIOCLI
73
73
  example: "MyAppTarget",
74
74
  type: String,
75
75
  confirm_symbol: :target_name,
76
- valid_values_proc: ->() { Configuration.current.xcodeproj.targets.map(&:name) }
76
+ valid_values_proc: -> { Configuration.current.xcodeproj.targets.map(&:name) }
77
77
  ),
78
78
  Option.new(
79
79
  name: :podfile,
@@ -95,7 +95,7 @@ module BranchIOCLI
95
95
  Option.new(
96
96
  name: :carthage_command,
97
97
  description: "Command to run when installing from Carthage",
98
- example: "<command>",
98
+ example: "bootstrap --no-use-binaries",
99
99
  type: String,
100
100
  default_value: "update --platform ios"
101
101
  ),
@@ -3,8 +3,8 @@ module BranchIOCLI
3
3
  class CommandError < RuntimeError
4
4
  attr_reader :status
5
5
  def initialize(args)
6
- @args = args.first
7
- @status = args.second
6
+ @args = args[0]
7
+ @status = args[1]
8
8
  super message
9
9
  end
10
10
 
@@ -217,12 +217,15 @@ module BranchIOCLI
217
217
  def pod_install_if_required(report)
218
218
  return unless config.pod_install_required?
219
219
  # Only if a Podfile is detected/supplied at the command line.
220
+
220
221
  say "pod install required in order to build."
221
- install = confirm 'Run "pod install" now?', true
222
+ if config.confirm
223
+ install = confirm 'Run "pod install" now?', true
222
224
 
223
- unless install
224
- say 'Please run "pod install" or "pod update" first in order to continue.'
225
- exit(-1)
225
+ unless install
226
+ say 'Please run "pod install" or "pod update" first in order to continue.'
227
+ exit(-1)
228
+ end
226
229
  end
227
230
 
228
231
  ToolHelper.verify_cocoapods
@@ -243,7 +246,34 @@ some cases. If that happens, please rerun without --no-pod-repo-update or run
243
246
  if report.sh(install_command).success?
244
247
  say "Done ✅"
245
248
  else
246
- say "pod install failed. See report for details."
249
+ say "#{install_command.inspect} failed. See report for details."
250
+ exit(-1)
251
+ end
252
+ end
253
+
254
+ def carthage_bootstrap_if_required(report)
255
+ return unless config.cartfile_path
256
+ return if Dir.exist?(File.join(File.dirname(config.cartfile_path), "Carthage", "Build", "iOS"))
257
+
258
+ say "carthage checkout required in order to build."
259
+ if config.confirm
260
+ install = confirm 'Run "carthage checkout && carthage build --platform ios" now?', true
261
+
262
+ unless install
263
+ say 'Please build your Carthage dependencies first in order to continue.'
264
+ exit(-1)
265
+ end
266
+ end
267
+
268
+ ToolHelper.verify_carthage
269
+
270
+ install_command = "carthage checkout && carthage build --platform ios"
271
+
272
+ say "Running #{install_command.inspect}"
273
+ if report.sh(install_command).success?
274
+ say "Done ✅"
275
+ else
276
+ say "#{install_command.inspect} failed. See report for details."
247
277
  exit(-1)
248
278
  end
249
279
  end
@@ -219,8 +219,10 @@ github "BranchMetrics/ios-branch-deep-linking"
219
219
  # 1. Patch Cartfile. Return if no change (Branch already present).
220
220
  return false unless PatchHelper.patch_cartfile cartfile_path
221
221
 
222
- # 2. carthage update
223
- sh "carthage #{options.carthage_command} ios-branch-deep-linking", chdir: File.dirname(config.cartfile_path)
222
+ # 2. carthage bootstrap (or other command)
223
+ cmd = "carthage #{options.carthage_command}"
224
+ cmd << " ios-branch-deep-linking" if options.carthage_command =~ /^(update|build)/
225
+ sh cmd, chdir: File.dirname(config.cartfile_path)
224
226
 
225
227
  # 3. Add Cartfile and Cartfile.resolved to commit (in case :commit param specified)
226
228
  helper.add_change cartfile_path
@@ -1,3 +1,3 @@
1
1
  module BranchIOCLI
2
- VERSION = "0.12.4"
2
+ VERSION = "0.12.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: branch_io_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.4
4
+ version: 0.12.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Branch
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-12-10 00:00:00.000000000 Z
12
+ date: 2017-12-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: CFPropertyList
@@ -180,7 +180,7 @@ dependencies:
180
180
  - !ruby/object:Gem::Version
181
181
  version: '0'
182
182
  - !ruby/object:Gem::Dependency
183
- name: rspec_junit_formatter
183
+ name: rspec-simplecov
184
184
  requirement: !ruby/object:Gem::Requirement
185
185
  requirements:
186
186
  - - ">="
@@ -194,7 +194,7 @@ dependencies:
194
194
  - !ruby/object:Gem::Version
195
195
  version: '0'
196
196
  - !ruby/object:Gem::Dependency
197
- name: rspec-simplecov
197
+ name: rspec_junit_formatter
198
198
  requirement: !ruby/object:Gem::Requirement
199
199
  requirements:
200
200
  - - ">="
@@ -211,16 +211,16 @@ dependencies:
211
211
  name: rubocop
212
212
  requirement: !ruby/object:Gem::Requirement
213
213
  requirements:
214
- - - "~>"
214
+ - - '='
215
215
  - !ruby/object:Gem::Version
216
- version: 0.50.0
216
+ version: 0.52.0
217
217
  type: :development
218
218
  prerelease: false
219
219
  version_requirements: !ruby/object:Gem::Requirement
220
220
  requirements:
221
- - - "~>"
221
+ - - '='
222
222
  - !ruby/object:Gem::Version
223
- version: 0.50.0
223
+ version: 0.52.0
224
224
  - !ruby/object:Gem::Dependency
225
225
  name: simplecov
226
226
  requirement: !ruby/object:Gem::Requirement