branch_io_cli 0.12.0 → 0.12.1

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: be0daf95d93295d62f31315a658b57fc4907530d6f4a1b6dc1fef5366a18d78e
4
- data.tar.gz: 63c2469083e71c37a99ebcaeabc67eb11e76efa2ad2ddf7210c66b2daad1aced
3
+ metadata.gz: a1614c75a346bfa728be2437d7e729a54c381199c1786699210defc36a33e390
4
+ data.tar.gz: '0334849b987d626b6e606972c552a1ae2e737aad2746b96519da1402a8a48c85'
5
5
  SHA512:
6
- metadata.gz: bda3669c526febfb881867e4f583340ee8d3450d2683d7d3631fca1b8719e44ed73b5d2ff9b93ca415243e92c4675e76014e5938b029bf5c2e3276b3a09ed47f
7
- data.tar.gz: be88db9e6b26f92a18a9aac27d6004f82fdc9e63cc6cb06c039a1edc97cce206788531c650b9aff4fbb40f94cbd1238551e47c263b2b015b1fadbb8dde7b8121
6
+ metadata.gz: d6ddacc36d94b84d8fa6f90b7a80c1964915e9a3b174d2d0928b53be0112cc31de7758a0f441e7c89adb1d0ce3baea2cb74ed5d7b4220dc770b43664ccfb512f
7
+ data.tar.gz: 29f548ba0c9c57583682f80c0f633cd8ef837f342342ba32ba8472a6f55554efe7a92b38e98ab5902c08c5bc39097251436fade3e53e542af8d0a41c52cc6603
@@ -1,4 +1,5 @@
1
1
  #!/bin/bash
2
+ # This file is generated. Run rake readme to regenerate it.
2
3
 
3
4
  _branch_io_complete()
4
5
  {
@@ -8,19 +9,16 @@ _branch_io_complete()
8
9
  prev="${COMP_WORDS[COMP_CWORD-1]}"
9
10
  cmd="${COMP_WORDS[1]}"
10
11
 
11
- commands="report setup validate"
12
+ commands="setup report validate"
12
13
  global_opts="-h --help -t --trace -v --version"
13
14
 
14
- setup_opts="$global_opts -L --live-key -T --test-key -D --domains --app-link-subdomain -U --uri-scheme"
15
- setup_opts="$setup_opts --xcodeproj --target --frameworks --podfile --cartfile --carthage-command --setting -s"
16
- setup_opts="$setup_opts --test-configurations --no-test-configurations --no-check-repo-changes --no-confirm"
17
- # Don't autocomplete the default values here, e.g. --no-force, --pod-repo-update.
18
- setup_opts="$setup_opts --no-add-sdk --no-validate --force --no-pod-repo-update --commit --no-patch-source"
19
15
 
20
- validate_opts="$global_opts -D --domains --xcodeproj --target"
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
+
18
+ report_opts="--workspace --xcodeproj --scheme --target --configuration --sdk --podfile --cartfile --no-clean -H --header-only --no-pod-repo-update -o --out"
19
+
20
+ validate_opts="-D --domains --xcodeproj --target"
21
21
 
22
- report_opts="$global_opts --xcodeproj --workspace -H --header-only --no-clean --scheme --target --configuration --sdk --out"
23
- report_opts="$report_opts --podfile --cartfile --no-pod-repo-update"
24
22
 
25
23
  if [[ ${cur} == -* ]] ; then
26
24
  case "${cmd}" in
@@ -1,14 +1,11 @@
1
1
  #!/bin/zsh
2
+ # This file is generated. Run rake readme to regenerate it.
2
3
 
3
4
  _branch_io_complete() {
4
5
  local word opts
5
6
  word="$1"
6
7
  opts="-h --help -t --trace -v --version"
7
- opts="$opts -L --live-key -T --test-key -D --domains --app-link-subdomain -U --uri-scheme"
8
- opts="$opts --xcodeproj --target --frameworks --podfile --cartfile --carthage-command --setting -s"
9
- opts="$opts --test-configurations --no-test-configurations --no-check-repo-changes --no-confirm"
10
- # Don't autocomplete the default values here, e.g. --no-force, --pod-repo-update.
11
- opts="$opts --no-add-sdk --no-validate --force --no-pod-repo-update --commit --no-patch-source"
8
+ opts = "$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"
12
9
 
13
10
  reply=( "${(ps: :)opts}" )
14
11
  }
@@ -0,0 +1,42 @@
1
+ #!/bin/bash
2
+ # This file is generated. Run rake readme to regenerate it.
3
+
4
+ _branch_io_complete()
5
+ {
6
+ local cur prev opts global_opts setup_opts validate_opts commands cmd
7
+ COMPREPLY=()
8
+ cur="${COMP_WORDS[COMP_CWORD]}"
9
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
10
+ cmd="${COMP_WORDS[1]}"
11
+
12
+ commands="<%= all_commands.join (' ') %>"
13
+ global_opts="-h --help -t --trace -v --version"
14
+
15
+ <% all_commands.each do |command| %>
16
+ <%= %(#{command}_opts="#{options_for_command command}") %>
17
+ <% end %>
18
+
19
+ if [[ ${cur} == -* ]] ; then
20
+ case "${cmd}" in
21
+ report)
22
+ opts=$report_opts
23
+ ;;
24
+ setup)
25
+ opts=$setup_opts
26
+ ;;
27
+ validate)
28
+ opts=$validate_opts
29
+ ;;
30
+ *)
31
+ opts=$global_opts
32
+ ;;
33
+ esac
34
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
35
+ elif [[ ${prev} == branch_io ]] ; then
36
+ COMPREPLY=( $(compgen -W "${commands}" -- ${cur}) )
37
+ else
38
+ COMPREPLY=( $(compgen -o default ${cur}) )
39
+ fi
40
+ return 0
41
+ }
42
+ complete -F _branch_io_complete branch_io
@@ -0,0 +1,13 @@
1
+ #!/bin/zsh
2
+ # This file is generated. Run rake readme to regenerate it.
3
+
4
+ _branch_io_complete() {
5
+ local word opts
6
+ word="$1"
7
+ opts="-h --help -t --trace -v --version"
8
+ <%= %(opts = "$opts #{options_for_command 'setup'}") %>
9
+
10
+ reply=( "${(ps: :)opts}" )
11
+ }
12
+
13
+ compctl -K _branch_io_complete branch_io
@@ -61,10 +61,12 @@ module BranchIOCLI
61
61
  attr_reader :workspace
62
62
  attr_reader :workspace_path
63
63
  attr_reader :pod_repo_update
64
+ attr_reader :sdk
64
65
 
65
66
  def initialize(options)
66
67
  @options = options
67
68
  @pod_repo_update = options.pod_repo_update if self.class.available_options.map(&:name).include?(:pod_repo_update)
69
+ @sdk = "iphonesimulator" # to load Xcode build settings for commands without a --sdk option
68
70
 
69
71
  Configuration.current = self
70
72
 
@@ -359,7 +361,7 @@ EOF
359
361
  return @branch_imports if @branch_imports
360
362
 
361
363
  source_files = target.source_build_phase.files.map { |f| f.file_ref.real_path.to_s }
362
- source_files << bridging_header_path if bridging_header_path
364
+ source_files << bridging_header_path if bridging_header_path && File.exist?(bridging_header_path)
363
365
  @branch_imports = source_files.compact.map do |f|
364
366
  imports = branch_imports_from_file f
365
367
  next {} if imports.empty?
@@ -377,6 +379,10 @@ EOF
377
379
  imports << "#{line_no}: #{line.chomp}"
378
380
  end
379
381
  imports
382
+ rescue StandardError
383
+ # Quietly ignore anything that can't be opened for now.
384
+ # TODO: Get these errors into report output.
385
+ []
380
386
  end
381
387
 
382
388
  def method_missing(method_sym, *arguments, &block)
@@ -29,6 +29,7 @@ module BranchIOCLI
29
29
 
30
30
  def initialize(configuration)
31
31
  @configuration = configuration
32
+
32
33
  load_settings_from_xcode
33
34
  end
34
35
 
@@ -1,5 +1,6 @@
1
1
  require "branch_io_cli/format/highline_format"
2
2
  require "branch_io_cli/format/markdown_format"
3
+ require "branch_io_cli/format/shell_format"
3
4
 
4
5
  module BranchIOCLI
5
6
  module Format
@@ -0,0 +1,34 @@
1
+ module BranchIOCLI
2
+ module Format
3
+ module ShellFormat
4
+ include Format
5
+
6
+ def option(opt)
7
+ o = @configuration.available_options.find { |o1| o1.name == opt.to_sym }
8
+
9
+ cli_opt = opt.to_s.gsub(/_/, '-')
10
+
11
+ all_opts = o.aliases || []
12
+
13
+ if o.nil? || o.default_value.nil? || o.default_value != true
14
+ all_opts << "--#{cli_opt}"
15
+ else
16
+ all_opts << "--no-#{cli_opt}"
17
+ end
18
+
19
+ all_opts.join(" ")
20
+ end
21
+
22
+ def all_commands
23
+ Dir[File.expand_path(File.join("..", "..", "command", "**_command.rb"), __FILE__)].map { |p| p.sub(%r{^.*/([a-z0-9_]+)_command.rb$}, '\1') }
24
+ end
25
+
26
+ def options_for_command(command)
27
+ @configuration = Object.const_get("BranchIOCLI")
28
+ .const_get("Configuration")
29
+ .const_get("#{command.capitalize}Configuration")
30
+ @configuration.available_options.map { |o| option(o.name) }.join(" ")
31
+ end
32
+ end
33
+ end
34
+ end
@@ -168,11 +168,11 @@ module BranchIOCLI
168
168
  report += " Branch key(s) #{annotation}:\n"
169
169
  if branch_key.kind_of? Hash
170
170
  branch_key.each_key do |key|
171
- resolved_key = helper.expand_build_settings branch_key[key], config.target, configuration
171
+ resolved_key = config.target.expand_build_settings branch_key[key], configuration
172
172
  report += " #{key.capitalize}: #{resolved_key}\n"
173
173
  end
174
174
  elsif branch_key
175
- resolved_key = helper.expand_build_settings branch_key, config.target, configuration
175
+ resolved_key = config.target.expand_build_settings branch_key, configuration
176
176
  report += " #{resolved_key}\n"
177
177
  else
178
178
  report += " (none found)\n"
@@ -72,7 +72,13 @@ module Xcodeproj
72
72
  setting_value = resolved_build_setting(setting_name, false)[configuration]
73
73
  end
74
74
 
75
- return if setting_value.nil?
75
+ # TODO: What is the correct resolution order here? Which overrides which in
76
+ # Xcode?
77
+ if setting_value.nil? && defined?(BranchIOCLI::Configuration::XcodeSettings)
78
+ setting_value = BranchIOCLI::Configuration::XcodeSettings[configuration][setting_name]
79
+ end
80
+
81
+ return nil if setting_value.nil?
76
82
 
77
83
  expand_build_settings setting_value, configuration
78
84
  end
@@ -89,13 +95,10 @@ module Xcodeproj
89
95
  search_position = 0
90
96
  string = string.clone
91
97
 
92
- # HACK: When matching against an xcconfig, as here, sometimes the macro is just returned
93
- # without delimiters, e.g. TARGET_NAME or BUILT_PRODUCTS_DIR/Branch.framework. We allow
94
- # these two patterns for now.
95
- while (matches = %r{\$\(([^(){}]*)\)|\$\{([^(){}]*)\}|^([A-Z_]+)(/.*)?$}.match(string, search_position))
96
- original_macro = matches[1] || matches[2] || matches[3]
97
- delimiter_length = matches[3] ? 0 : 3 # $() or ${}
98
- delimiter_offset = matches[3] ? 0 : 2 # $( or ${
98
+ while (matches = /\$\(([^(){}]*)\)|\$\{([^(){}]*)\}/.match(string, search_position))
99
+ original_macro = matches[1] || matches[2]
100
+ delimiter_length = 3 # $() or ${}
101
+ delimiter_offset = 2 # $( or ${
99
102
  search_position = string.index(original_macro) - delimiter_offset
100
103
 
101
104
  if (m = /^(.+):(.+)$/.match original_macro)
@@ -118,6 +121,15 @@ module Xcodeproj
118
121
  string.gsub!(/\$\(#{original_macro}\)|\$\{#{original_macro}\}|^#{original_macro}/, expanded_macro)
119
122
  search_position += expanded_macro.length
120
123
  end
124
+
125
+ # HACK: When matching against an xcconfig, as here, sometimes the macro is just returned
126
+ # without delimiters, e.g. TARGET_NAME or PROJECT_DIR/PROJECT_NAME/BridgingHeader.h. We allow
127
+ # these two patterns for now.
128
+ string = string.split("/").map do |component|
129
+ next component unless component =~ /^[A-Z0-9_]+$/
130
+ expanded_build_setting(component, configuration) || component
131
+ end.join("/")
132
+
121
133
  string
122
134
  end
123
135
  end
@@ -1,3 +1,3 @@
1
1
  module BranchIOCLI
2
- VERSION = "0.12.0"
2
+ VERSION = "0.12.1"
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.0
4
+ version: 0.12.1
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-18 00:00:00.000000000 Z
12
+ date: 2017-11-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: CFPropertyList
@@ -288,6 +288,8 @@ files:
288
288
  - lib/assets/patches/open_url_swift.yml
289
289
  - lib/assets/patches/swift_import.yml
290
290
  - lib/assets/templates/command.erb
291
+ - lib/assets/templates/completion.bash.erb
292
+ - lib/assets/templates/completion.zsh.erb
291
293
  - lib/assets/templates/program_description.erb
292
294
  - lib/assets/templates/report_description.erb
293
295
  - lib/assets/templates/setup_description.erb
@@ -313,6 +315,7 @@ files:
313
315
  - lib/branch_io_cli/format.rb
314
316
  - lib/branch_io_cli/format/highline_format.rb
315
317
  - lib/branch_io_cli/format/markdown_format.rb
318
+ - lib/branch_io_cli/format/shell_format.rb
316
319
  - lib/branch_io_cli/helper.rb
317
320
  - lib/branch_io_cli/helper/android_helper.rb
318
321
  - lib/branch_io_cli/helper/branch_helper.rb