branch_io_cli 0.13.0.pre.1 → 0.13.0.pre.2
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 +4 -4
- data/LICENSE +1 -1
- data/README.md +112 -7
- data/lib/assets/completions/completion.bash +6 -1
- data/lib/assets/completions/completion.zsh +1 -1
- data/lib/assets/templates/completion.bash.erb +4 -1
- data/lib/assets/templates/completion.zsh.erb +1 -1
- data/lib/assets/templates/env_description.erb +1 -0
- data/lib/branch_io_cli.rb +9 -9
- data/lib/branch_io_cli/branch_app.rb +18 -5
- data/lib/branch_io_cli/cli.rb +1 -1
- data/lib/branch_io_cli/command.rb +5 -4
- data/lib/branch_io_cli/command/command.rb +4 -0
- data/lib/branch_io_cli/command/env_command.rb +22 -0
- data/lib/branch_io_cli/command/report_command.rb +9 -0
- data/lib/branch_io_cli/command/setup_command.rb +2 -2
- data/lib/branch_io_cli/configuration.rb +13 -10
- data/lib/branch_io_cli/configuration/configuration.rb +11 -5
- data/lib/branch_io_cli/configuration/env_configuration.rb +47 -0
- data/lib/branch_io_cli/configuration/env_options.rb +30 -0
- data/lib/branch_io_cli/configuration/environment.rb +107 -0
- data/lib/branch_io_cli/configuration/report_configuration.rb +8 -0
- data/lib/branch_io_cli/configuration/validate_configuration.rb +9 -0
- data/lib/branch_io_cli/core_ext.rb +4 -3
- data/lib/branch_io_cli/core_ext/tty_platform.rb +13 -0
- data/lib/branch_io_cli/core_ext/xcodeproj.rb +4 -4
- data/lib/branch_io_cli/format.rb +3 -3
- data/lib/branch_io_cli/helper.rb +6 -6
- data/lib/branch_io_cli/helper/branch_helper.rb +24 -10
- data/lib/branch_io_cli/helper/ios_helper.rb +15 -17
- data/lib/branch_io_cli/helper/report_helper.rb +5 -1
- data/lib/branch_io_cli/helper/tool_helper.rb +70 -31
- data/lib/branch_io_cli/rake_task.rb +2 -4
- data/lib/branch_io_cli/version.rb +1 -1
- metadata +112 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4bbc782e922e498b04f39138c04d0f2ca7ee5c1df7b275b0301765b4f96795dd
|
4
|
+
data.tar.gz: 91eaf176be8ae4ff130714918180f1fb7e6b3cea05d10938ec22b7c6973c58a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 797fa7dc2c642e125bca2da9220ef0380310ed3a08c4bcf538c7c33474faa61379eddfbee61cae20e4c2ec1388adfe2a7f4d20089d69992ca99105a7035d49c6
|
7
|
+
data.tar.gz: 7e872acd6813a7d522ffb16af73fe96eac37f6e0cf25a02ac7f5c5a257047a23e21157616ed762ce5af84ad20e4b819399396c498be0bf4ebf6af689f378945e
|
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2017 Branch Metrics, Inc.
|
3
|
+
Copyright (c) 2017-18 Branch Metrics, Inc.
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -7,10 +7,6 @@ This is a command-line tool to integrate the Branch SDK into mobile app projects
|
|
7
7
|
[](https://github.com/BranchMetrics/branch_io_cli/blob/master/LICENSE)
|
8
8
|
[](https://circleci.com/gh/BranchMetrics/branch_io_cli)
|
9
9
|
|
10
|
-
## Preliminary release
|
11
|
-
|
12
|
-
This is a preliminary release of this gem. Please report any problems by opening issues in this repo.
|
13
|
-
|
14
10
|
### Using Fastlane?
|
15
11
|
|
16
12
|
See also the [Branch Fastlane plugin](https://github.com/BranchMetrics/fastlane-plugin-branch), which offers
|
@@ -20,12 +16,25 @@ the same support via Fastlane.
|
|
20
16
|
|
21
17
|
## Getting started
|
22
18
|
|
19
|
+
To install a prerelease version of `0.13`:
|
20
|
+
|
23
21
|
```bash
|
24
|
-
gem install branch_io_cli
|
22
|
+
gem install branch_io_cli --pre
|
25
23
|
```
|
26
24
|
|
27
25
|
Note that this command may require `sudo` access if you are using the system Ruby, i.e. `sudo gem install branch_io_cli`.
|
28
26
|
|
27
|
+
### Experimental: Install using Homebrew
|
28
|
+
|
29
|
+
```bash
|
30
|
+
brew tap jdee/tap
|
31
|
+
brew install branch_io_cli
|
32
|
+
```
|
33
|
+
|
34
|
+
**Note:** Prerelease versions of the CLI are only available from RubyGems for now.
|
35
|
+
|
36
|
+
### Getting help
|
37
|
+
|
29
38
|
```bash
|
30
39
|
branch_io -h
|
31
40
|
branch_io setup -h
|
@@ -55,7 +64,7 @@ any Ruby-related environment variables if using the system Ruby.
|
|
55
64
|
Add to `~/.bash_profile` or `~/.bashrc`:
|
56
65
|
|
57
66
|
```bash
|
58
|
-
|
67
|
+
[[ "$(which br)" == "" ]] || . $(br env -cs bash)
|
59
68
|
```
|
60
69
|
|
61
70
|
#### Zsh
|
@@ -63,7 +72,7 @@ Add to `~/.bash_profile` or `~/.bashrc`:
|
|
63
72
|
Add to `~/.zshrc`:
|
64
73
|
|
65
74
|
```zsh
|
66
|
-
|
75
|
+
[[ "$(which br)" == "" ]] || . $(br env -cs zsh)
|
67
76
|
```
|
68
77
|
|
69
78
|
Currently command-line completion for bash is much more extensive than for zsh.
|
@@ -263,6 +272,37 @@ See https://github.com/BranchMetrics/branch_io_cli#validate-command for more inf
|
|
263
272
|
|--[no-]confirm|Enable or disable many prompts (default: yes)|BRANCH_CONFIRM|
|
264
273
|
|
265
274
|
|
275
|
+
#### Examples
|
276
|
+
|
277
|
+
|
278
|
+
##### Ensure project has at least one correctly configured Branch key and domain
|
279
|
+
|
280
|
+
```bash
|
281
|
+
br validate
|
282
|
+
```
|
283
|
+
|
284
|
+
|
285
|
+
##### Ensure project is correctly configured for certain Branch keys
|
286
|
+
|
287
|
+
```bash
|
288
|
+
br validate -L key_live_xxxx -T key_test_yyyy
|
289
|
+
```
|
290
|
+
|
291
|
+
|
292
|
+
##### Ensure project is correctly configured to use specific domains
|
293
|
+
|
294
|
+
```bash
|
295
|
+
br validate -D myapp.app.link,myapp-alternate.app.link
|
296
|
+
```
|
297
|
+
|
298
|
+
|
299
|
+
##### Validate only Universal Link configuration
|
300
|
+
|
301
|
+
```bash
|
302
|
+
br validate --universal-links-only
|
303
|
+
```
|
304
|
+
|
305
|
+
|
266
306
|
|
267
307
|
|
268
308
|
|
@@ -302,6 +342,71 @@ building.
|
|
302
342
|
|--[no-]confirm|Enable or disable many prompts (default: yes)|BRANCH_CONFIRM|
|
303
343
|
|
304
344
|
|
345
|
+
#### Examples
|
346
|
+
|
347
|
+
|
348
|
+
##### Show general project information without building
|
349
|
+
|
350
|
+
```bash
|
351
|
+
br report -H
|
352
|
+
```
|
353
|
+
|
354
|
+
|
355
|
+
##### Perform a full build and report all errors to report.txt
|
356
|
+
|
357
|
+
```bash
|
358
|
+
br report
|
359
|
+
```
|
360
|
+
|
361
|
+
|
362
|
+
##### Don't clean before building
|
363
|
+
|
364
|
+
```bash
|
365
|
+
br report --no-clean
|
366
|
+
```
|
367
|
+
|
368
|
+
|
369
|
+
|
370
|
+
|
371
|
+
### Env command
|
372
|
+
|
373
|
+
```bash
|
374
|
+
branch_io env [OPTIONS]
|
375
|
+
br env [OPTIONS]
|
376
|
+
```
|
377
|
+
|
378
|
+
Output information about CLI environment.
|
379
|
+
|
380
|
+
|
381
|
+
#### Options
|
382
|
+
|
383
|
+
|Option|Description|Env. var.|
|
384
|
+
|------|-----------|---------|
|
385
|
+
|-h, --help|Prints a list of commands or help for each command||
|
386
|
+
|-v, --version|Prints the current version of the CLI||
|
387
|
+
|-t, --trace|Prints a stack trace when exceptions are raised||
|
388
|
+
|-c, --[no-]completion-script|Get the path to the completion script for this shell (default: no)|BRANCH_COMPLETION_SCRIPT|
|
389
|
+
|-s, --shell zsh|Specify shell for completion script|SHELL|
|
390
|
+
|-V, --[no-]verbose|Generate verbose output (default: no)|BRANCH_VERBOSE|
|
391
|
+
|
392
|
+
|
393
|
+
#### Examples
|
394
|
+
|
395
|
+
|
396
|
+
##### Show CLI environment
|
397
|
+
|
398
|
+
```bash
|
399
|
+
br env
|
400
|
+
```
|
401
|
+
|
402
|
+
|
403
|
+
##### Get completion script for zsh
|
404
|
+
|
405
|
+
```bash
|
406
|
+
br env -cs zsh
|
407
|
+
```
|
408
|
+
|
409
|
+
|
305
410
|
|
306
411
|
|
307
412
|
|
@@ -9,10 +9,12 @@ _branch_io_complete()
|
|
9
9
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
10
10
|
cmd="${COMP_WORDS[1]}"
|
11
11
|
|
12
|
-
commands="setup report validate"
|
12
|
+
commands="env setup report validate"
|
13
13
|
global_opts="-h --help -t --trace -v --version"
|
14
14
|
|
15
15
|
|
16
|
+
env_opts="-c --completion-script -s --shell -V --verbose"
|
17
|
+
|
16
18
|
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
19
|
|
18
20
|
report_opts="--workspace --xcodeproj --scheme --target --configuration --sdk --podfile --cartfile --no-clean -H --header-only --no-pod-repo-update -o --out --no-confirm"
|
@@ -31,6 +33,9 @@ _branch_io_complete()
|
|
31
33
|
validate)
|
32
34
|
opts=$validate_opts
|
33
35
|
;;
|
36
|
+
env)
|
37
|
+
opts=$env_opts
|
38
|
+
;;
|
34
39
|
*)
|
35
40
|
opts=$global_opts
|
36
41
|
;;
|
@@ -5,7 +5,7 @@ _branch_io_complete() {
|
|
5
5
|
local word opts
|
6
6
|
word="$1"
|
7
7
|
opts="-h --help -t --trace -v --version"
|
8
|
-
opts
|
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"
|
9
9
|
|
10
10
|
reply=( "${(ps: :)opts}" )
|
11
11
|
}
|
@@ -9,7 +9,7 @@ _branch_io_complete()
|
|
9
9
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
10
10
|
cmd="${COMP_WORDS[1]}"
|
11
11
|
|
12
|
-
commands="<%= all_commands.join
|
12
|
+
commands="<%= all_commands.join(' ') %>"
|
13
13
|
global_opts="-h --help -t --trace -v --version"
|
14
14
|
|
15
15
|
<% all_commands.each do |command| %>
|
@@ -27,6 +27,9 @@ _branch_io_complete()
|
|
27
27
|
validate)
|
28
28
|
opts=$validate_opts
|
29
29
|
;;
|
30
|
+
env)
|
31
|
+
opts=$env_opts
|
32
|
+
;;
|
30
33
|
*)
|
31
34
|
opts=$global_opts
|
32
35
|
;;
|
@@ -0,0 +1 @@
|
|
1
|
+
Output information about CLI environment.
|
data/lib/branch_io_cli.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
1
|
+
require_relative "branch_io_cli/ascii_art"
|
2
|
+
require_relative "branch_io_cli/branch_app"
|
3
|
+
require_relative "branch_io_cli/cli"
|
4
|
+
require_relative "branch_io_cli/command"
|
5
|
+
require_relative "branch_io_cli/configuration"
|
6
|
+
require_relative "branch_io_cli/core_ext"
|
7
|
+
require_relative "branch_io_cli/format"
|
8
|
+
require_relative "branch_io_cli/helper"
|
9
|
+
require_relative "branch_io_cli/version"
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require "active_support/core_ext/hash"
|
2
2
|
require "json"
|
3
|
-
|
3
|
+
require_relative "helper"
|
4
|
+
require "tty/spinner"
|
4
5
|
|
5
6
|
module BranchIOCLI
|
6
7
|
class BranchApp
|
@@ -31,11 +32,19 @@ module BranchIOCLI
|
|
31
32
|
def initialize(key)
|
32
33
|
@key = key
|
33
34
|
|
34
|
-
|
35
|
+
spinner = TTY::Spinner.new "[:spinner] Fetching configuration from Branch Dashboard for #{key}.", format: :flip
|
36
|
+
spinner.auto_spin
|
35
37
|
|
36
|
-
|
37
|
-
|
38
|
-
|
38
|
+
begin
|
39
|
+
@hash = JSON.parse(Helper::BranchHelper.fetch("#{API_ENDPOINT}#{key}", spin: false)).symbolize_keys.merge key: key
|
40
|
+
spinner.success
|
41
|
+
@valid = true
|
42
|
+
rescue StandardError => e
|
43
|
+
spinner.error
|
44
|
+
say e.message
|
45
|
+
@valid = false
|
46
|
+
return
|
47
|
+
end
|
39
48
|
|
40
49
|
@alternate_short_url_domain = @hash[:alternate_short_url_domain]
|
41
50
|
@android_package_name = @hash[:android_package_name]
|
@@ -47,6 +56,10 @@ module BranchIOCLI
|
|
47
56
|
@short_url_domain = @hash[:short_url_domain]
|
48
57
|
end
|
49
58
|
|
59
|
+
def valid?
|
60
|
+
@valid
|
61
|
+
end
|
62
|
+
|
50
63
|
def domains
|
51
64
|
[alternate_short_url_domain, default_short_url_domain, short_url_domain].compact.uniq
|
52
65
|
end
|
data/lib/branch_io_cli/cli.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
require_relative "command/command"
|
2
|
+
require_relative "command/env_command"
|
3
|
+
require_relative "command/report_command"
|
4
|
+
require_relative "command/setup_command"
|
5
|
+
require_relative "command/validate_command"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module BranchIOCLI
|
2
|
+
module Command
|
3
|
+
class EnvCommand < Command
|
4
|
+
def run!
|
5
|
+
if config.show_all?
|
6
|
+
say "\n" unless config.quiet
|
7
|
+
say "<%= color('CLI version:', BOLD) %> #{VERSION}"
|
8
|
+
say env.ruby_header(include_load_path: true)
|
9
|
+
else
|
10
|
+
script_path = env.completion_script
|
11
|
+
if script_path.nil?
|
12
|
+
say "Completion script not available for #{env.shell}"
|
13
|
+
return 1
|
14
|
+
end
|
15
|
+
puts script_path
|
16
|
+
end
|
17
|
+
|
18
|
+
0
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -18,6 +18,8 @@ module BranchIOCLI
|
|
18
18
|
end
|
19
19
|
|
20
20
|
if config.header_only
|
21
|
+
say "\n"
|
22
|
+
say env.ruby_header
|
21
23
|
say report_helper.report_header
|
22
24
|
return 0
|
23
25
|
end
|
@@ -35,6 +37,13 @@ module BranchIOCLI
|
|
35
37
|
def write_report(report)
|
36
38
|
report.write "Branch.io Xcode build report v #{VERSION} #{Time.now}\n\n"
|
37
39
|
report.write "#{config.report_configuration}\n"
|
40
|
+
|
41
|
+
if report == STDOUT
|
42
|
+
say env.ruby_header
|
43
|
+
else
|
44
|
+
report.write env.ruby_header(terminal: false, include_load_path: true)
|
45
|
+
end
|
46
|
+
|
38
47
|
report.write "#{report_helper.report_header}\n"
|
39
48
|
|
40
49
|
tool_helper.pod_install_if_required report
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative "../helper"
|
2
2
|
|
3
3
|
module BranchIOCLI
|
4
4
|
module Command
|
@@ -139,7 +139,7 @@ module BranchIOCLI
|
|
139
139
|
|
140
140
|
case choice
|
141
141
|
when /^Stash/
|
142
|
-
sh
|
142
|
+
sh %w(git stash -q)
|
143
143
|
when /^Commit/
|
144
144
|
message = ask "Please enter a commit message: "
|
145
145
|
sh "git", "commit", "-aqm", message
|
@@ -1,10 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
1
|
+
require_relative "configuration/configuration"
|
2
|
+
require_relative "configuration/env_configuration"
|
3
|
+
require_relative "configuration/env_options"
|
4
|
+
require_relative "configuration/environment"
|
5
|
+
require_relative "configuration/option"
|
6
|
+
require_relative "configuration/option_wrapper"
|
7
|
+
require_relative "configuration/report_configuration"
|
8
|
+
require_relative "configuration/report_options"
|
9
|
+
require_relative "configuration/setup_configuration"
|
10
|
+
require_relative "configuration/setup_options"
|
11
|
+
require_relative "configuration/validate_configuration"
|
12
|
+
require_relative "configuration/validate_options"
|
13
|
+
require_relative "configuration/xcode_settings"
|
@@ -81,6 +81,7 @@ module BranchIOCLI
|
|
81
81
|
attr_reader :sdk
|
82
82
|
attr_reader :keys
|
83
83
|
attr_reader :apps
|
84
|
+
attr_reader :quiet
|
84
85
|
|
85
86
|
def initialize(options)
|
86
87
|
@options = options
|
@@ -90,10 +91,13 @@ module BranchIOCLI
|
|
90
91
|
|
91
92
|
Configuration.current = self
|
92
93
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
94
|
+
unless quiet
|
95
|
+
say "\n"
|
96
|
+
print_identification
|
97
|
+
say ASCII_ART
|
98
|
+
say "\n"
|
99
|
+
end
|
100
|
+
|
97
101
|
validate_options
|
98
102
|
log
|
99
103
|
end
|
@@ -103,6 +107,8 @@ module BranchIOCLI
|
|
103
107
|
end
|
104
108
|
|
105
109
|
def log
|
110
|
+
return if quiet
|
111
|
+
|
106
112
|
say <<EOF
|
107
113
|
<%= color('Configuration:', [CYAN, BOLD, UNDERLINE]) %>
|
108
114
|
|
@@ -300,7 +306,7 @@ EOF
|
|
300
306
|
end
|
301
307
|
|
302
308
|
# For now: When using --no-validate with the setup command, don't call the Branch API.
|
303
|
-
return true unless
|
309
|
+
return true unless self.class.available_options.map(&:name).include?(:validate) && validate
|
304
310
|
|
305
311
|
begin
|
306
312
|
# Retrieve info from the API
|