branch_io_cli 0.9.6 → 0.9.7

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
  SHA256:
3
- metadata.gz: ed1b9b67e4bbb2e57d7108b533fd9b77e81d3393eaa229eba07e4964215b6036
4
- data.tar.gz: f451658fdddda919cfe70efa48f6a97c0d2458b287ec149b08b392ecb42c8e35
3
+ metadata.gz: 1f34a0beb6001798fa4ca54e4b69ead8baaa811b313ef7166e6a03ff6d00fb51
4
+ data.tar.gz: de7f72a71a6f61a893a1b89025d21caf2efa475c100590fda5a48cb3bd9dc838
5
5
  SHA512:
6
- metadata.gz: a536b08af90fa19f98f20a20a145258784dc677c2098209b5c374d700bba5eacd803a98626e7b0633394ef25d13addad8513af449edf1ef690f0c4f1ef92c7a6
7
- data.tar.gz: 2880054b91cdb81cf982d5d445d7a23f3d11aac9abaa5a015a7fdf87695e36523b91ac50a080ac9962b7364aec7c73faa7a24d8446522aad29d483969d568660
6
+ metadata.gz: 4b3cb56a99bdafeb2dbb47f012a692da84ad37c3e8a836d908d6a0a3286dd91ea1a7669a3d21d42798ab859c8e3f16938a1599c69745834240d07ab29cb33cfa
7
+ data.tar.gz: 3a3bc8dec22dd6ee83d84fc136b24eadf5a99448cddf73ecf02127ca4f6f44928ac6a04fca6ca1b6c5c06ab2e9e37e806f8da0d806cc9eeca2745d29191e7d1e
@@ -94,6 +94,10 @@ EOF
94
94
  say "Report generated in #{config.report_path}"
95
95
  end
96
96
 
97
+ def report_helper
98
+ Helper::ReportHelper
99
+ end
100
+
97
101
  def base_xcodebuild_cmd
98
102
  cmd = "xcodebuild"
99
103
  if config.workspace_path
@@ -376,6 +380,8 @@ EOF
376
380
  end
377
381
  end
378
382
 
383
+ report += report_helper.report_imports
384
+
379
385
  report
380
386
  end
381
387
 
@@ -198,6 +198,22 @@ EOF
198
198
  podfile && !uses_frameworks?
199
199
  end
200
200
 
201
+ def app_delegate_swift_path
202
+ return nil unless swift_version && swift_version.to_f >= 3.0
203
+
204
+ app_delegate = target.source_build_phase.files.find { |f| f.file_ref.path =~ /AppDelegate\.swift$/ }
205
+ return nil if app_delegate.nil?
206
+
207
+ app_delegate.file_ref.real_path.to_s
208
+ end
209
+
210
+ def app_delegate_objc_path
211
+ app_delegate = target.source_build_phase.files.find { |f| f.file_ref.path =~ /AppDelegate\.m$/ }
212
+ return nil if app_delegate.nil?
213
+
214
+ app_delegate.file_ref.real_path.to_s
215
+ end
216
+
201
217
  # TODO: How many of these can vary by configuration?
202
218
 
203
219
  def modules_enabled?
@@ -225,6 +241,25 @@ EOF
225
241
  @swift_version = target.resolved_build_setting("SWIFT_VERSION")["Release"]
226
242
  @swift_version
227
243
  end
244
+
245
+ def branch_imports
246
+ return @branch_imports if @branch_imports
247
+
248
+ source_files = [app_delegate_swift_path, app_delegate_objc_path, bridging_header_path]
249
+ @branch_imports = source_files.compact.map { |f| { f => branch_imports_from_file(f) } }.inject({}, :merge)
250
+ @branch_imports
251
+ end
252
+
253
+ # Detect anything that appears to be an attempt to import the Branch SDK,
254
+ # even if it might be wrong.
255
+ def branch_imports_from_file(path)
256
+ imports = []
257
+ File.readlines(path).each_with_index do |line, line_no|
258
+ next unless line =~ /(include|import).*branch/i
259
+ imports << "#{line_no}: #{line.chomp}"
260
+ end
261
+ imports
262
+ end
228
263
  end
229
264
  end
230
265
  end
@@ -87,20 +87,35 @@ module BranchIOCLI
87
87
  end
88
88
 
89
89
  def validate_keys_from_setup_options(options)
90
- live_key = options.live_key
91
- test_key = options.test_key
92
90
  @keys = {}
93
- keys[:live] = live_key unless live_key.nil?
94
- keys[:test] = test_key unless test_key.nil?
95
91
 
92
+ # 1. Check the options passed in. If nothing (nil) passed, continue.
93
+ validate_key options.live_key, :live, accept_nil: true
94
+ validate_key options.test_key, :test, accept_nil: true
95
+
96
+ # 2. Did we find a valid key above?
96
97
  while @keys.empty?
98
+ # 3. If not, prompt.
97
99
  say "A live key, a test key or both is required."
98
- live_key = ask "Please enter your live Branch key or use --live_key [enter for none]: "
99
- test_key = ask "Please enter your test Branch key or use --test_key [enter for none]: "
100
+ validate_key nil, :live
101
+ validate_key nil, :test
102
+ end
103
+
104
+ # 4. We have at least one valid key now.
105
+ end
106
+
107
+ def key_valid?(key, type)
108
+ return false if key.nil?
109
+ key.empty? || key =~ /^key_#{type}_/
110
+ end
100
111
 
101
- keys[:live] = live_key unless live_key == ""
102
- keys[:test] = test_key unless test_key == ""
112
+ def validate_key(key, type, options = {})
113
+ return if options[:accept_nil] && key.nil?
114
+ until key_valid? key, type
115
+ say "#{key.inspect} is not a valid #{type} Branch key. It must begin with key_#{type}_." if key
116
+ key = ask "Please enter your #{type} Branch key or use --#{type}-key [enter for none]: "
103
117
  end
118
+ @keys[type] = key unless key.empty?
104
119
  end
105
120
 
106
121
  def validate_all_domains(options, required = true)
@@ -1,2 +1,3 @@
1
1
  require "branch_io_cli/helper/branch_helper"
2
2
  require "branch_io_cli/helper/patch_helper"
3
+ require "branch_io_cli/helper/report_helper"
@@ -645,7 +645,7 @@ EOF
645
645
 
646
646
  # 2. carthage update
647
647
  Dir.chdir(File.dirname(cartfile_path)) do
648
- sh "carthage #{config.carthage_command}"
648
+ sh "carthage #{config.carthage_command} ios-branch-deep-linking"
649
649
  end
650
650
 
651
651
  # 3. Add Cartfile and Cartfile.resolved to commit (in case :commit param specified)
@@ -58,12 +58,10 @@ module BranchIOCLI
58
58
  end
59
59
 
60
60
  def patch_app_delegate_swift(project)
61
- return false unless config.swift_version
61
+ return false unless config.patch_source
62
+ app_delegate_swift_path = config.app_delegate_swift_path
62
63
 
63
- app_delegate_swift = project.files.find { |f| f.path =~ /AppDelegate.swift$/ }
64
- return false if app_delegate_swift.nil?
65
-
66
- app_delegate_swift_path = app_delegate_swift.real_path.to_s
64
+ return false unless app_delegate_swift_path
67
65
 
68
66
  app_delegate = File.read app_delegate_swift_path
69
67
 
@@ -87,10 +85,10 @@ module BranchIOCLI
87
85
  end
88
86
 
89
87
  def patch_app_delegate_objc(project)
90
- app_delegate_objc = project.files.find { |f| f.path =~ /AppDelegate.m$/ }
91
- return false if app_delegate_objc.nil?
88
+ return false unless config.patch_source
89
+ app_delegate_objc_path = config.app_delegate_objc_path
92
90
 
93
- app_delegate_objc_path = app_delegate_objc.real_path.to_s
91
+ return false unless app_delegate_objc_path
94
92
 
95
93
  app_delegate = File.read app_delegate_objc_path
96
94
  return false if app_delegate =~ %r{^\s+#import\s+<Branch/Branch.h>|^\s+@import\s+Branch\s*;}
@@ -0,0 +1,23 @@
1
+ require "branch_io_cli/configuration/configuration"
2
+
3
+ module BranchIOCLI
4
+ module Helper
5
+ class ReportHelper
6
+ class << self
7
+ def report_imports
8
+ report = "Branch imports:\n"
9
+ config.branch_imports.each_key do |path|
10
+ report += " #{config.relative_path path}:\n"
11
+ report += " #{config.branch_imports[path].join("\n ")}"
12
+ report += "\n"
13
+ end
14
+ report
15
+ end
16
+
17
+ def config
18
+ Configuration::Configuration.current
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,3 +1,3 @@
1
1
  module BranchIOCLI
2
- VERSION = "0.9.6"
2
+ VERSION = "0.9.7"
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.9.6
4
+ version: 0.9.7
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-11-10 00:00:00.000000000 Z
12
+ date: 2017-11-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: CFPropertyList
@@ -302,6 +302,7 @@ files:
302
302
  - lib/branch_io_cli/helper/ios_helper.rb
303
303
  - lib/branch_io_cli/helper/methods.rb
304
304
  - lib/branch_io_cli/helper/patch_helper.rb
305
+ - lib/branch_io_cli/helper/report_helper.rb
305
306
  - lib/branch_io_cli/version.rb
306
307
  homepage: http://github.com/BranchMetrics/branch_io_cli
307
308
  licenses: