fir-cli 0.2.3.1 → 1.0.0
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/.gitignore +13 -82
- data/CHANGELOG +36 -0
- data/Gemfile +3 -1
- data/LICENSE.txt +1 -1
- data/README.md +83 -103
- data/Rakefile +1 -0
- data/bin/fir +9 -11
- data/fir-cli.gemspec +47 -26
- data/lib/fir/api.yml +5 -0
- data/lib/fir/cli.rb +107 -0
- data/lib/fir/patches/bin/pngcrush +0 -0
- data/lib/fir/patches/native_patch.rb +199 -0
- data/lib/fir/patches/os_patch.rb +22 -0
- data/lib/fir/patches/parser_patch.rb +165 -0
- data/lib/fir/patches.rb +5 -0
- data/lib/fir/util/build.rb +158 -0
- data/lib/fir/util/info.rb +79 -0
- data/lib/fir/util/login.rb +17 -0
- data/lib/fir/util/publish.rb +103 -0
- data/lib/fir/util.rb +45 -0
- data/lib/fir/version.rb +5 -0
- data/lib/fir-cli.rb +3 -0
- data/lib/fir.rb +87 -0
- data/lib/fir_cli.rb +3 -0
- metadata +57 -109
- data/Gemfile.lock +0 -45
- data/fir-cli.rb +0 -27
- data/lib/fir-cli/version.rb +0 -5
- data/lib/fir-cli-commands/00-info.rb +0 -17
- data/lib/fir-cli-commands/00-login.rb +0 -30
- data/lib/fir-cli-commands/00-profile.rb +0 -31
- data/lib/fir-cli-commands/00-upgrade.rb +0 -15
- data/lib/fir-cli-commands/00-version.rb +0 -10
- data/lib/fir-cli-commands/01-config.rb +0 -17
- data/lib/fir-cli-commands/100-resign_codesign.rb +0 -59
- data/lib/fir-cli-commands/100-resign_tapbeta.rb +0 -85
- data/lib/fir-cli-commands/101-resign.rb +0 -26
- data/lib/fir-cli-commands/11-publish.rb +0 -73
- data/lib/fir-cli-commands/12-build_ipa.rb +0 -153
- data/lib/fir-cli.chk.rb +0 -33
- data/lib/fir-cli.core.rb +0 -96
- data/lib/fir-cli.fir.rb +0 -49
- data/lib/fir-cli.opt.rb +0 -35
- data/lib/fir-cli.output.rb +0 -55
- data/lib/fir-cli.utils.rb +0 -108
- data/lib/lagunitas.ext.rb +0 -56
- data/lib/lagunitas.patch.rb +0 -51
- data/lib/user_config.patch.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cdfcc4494b2c319d0bab3e4edc1dcd2135479129
|
4
|
+
data.tar.gz: 7c93f0486879317b7ca83cb6afc1e95810f1677d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d50784764f1448a94699c83ab42f83b4b62fa15677e06a94a81afc66ad201d61fdabde87d9099c4c733d6323c0fb45609eeb3973f0083099f5bf912936f84c8
|
7
|
+
data.tar.gz: 1453ac85497d3416fc98fd3766b58f995d022553c35fb54f96b00703ba952fff7fae9b04c5c8e88d1870c867060ed41af4d7eebd2dff8d533389d7118ab183c5
|
data/.gitignore
CHANGED
@@ -1,87 +1,18 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
*.rbc
|
6
|
-
/.config
|
1
|
+
/.bundle/
|
2
|
+
/.yardoc
|
3
|
+
/Gemfile.lock
|
4
|
+
/_yardoc/
|
7
5
|
/coverage/
|
8
|
-
/
|
6
|
+
/doc/
|
9
7
|
/pkg/
|
10
8
|
/spec/reports/
|
11
|
-
/test/tmp/
|
12
|
-
/test/version_tmp/
|
13
9
|
/tmp/
|
14
|
-
*.
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
.
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
/.yardoc/
|
23
|
-
/_yardoc/
|
24
|
-
/doc/
|
25
|
-
/rdoc/
|
26
|
-
|
27
|
-
## Environment normalisation:
|
28
|
-
/.bundle/
|
29
|
-
/lib/bundler/man/
|
30
|
-
|
31
|
-
# for a library or gem, you might want to ignore these files since the code is
|
32
|
-
# intended to run in multiple environments; otherwise, check them in:
|
33
|
-
# Gemfile.lock
|
34
|
-
# .ruby-version
|
35
|
-
# .ruby-gemset
|
36
|
-
|
37
|
-
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
38
|
-
.rvmrc
|
39
|
-
|
40
|
-
|
41
|
-
### Linux ###
|
42
|
-
*~
|
43
|
-
|
44
|
-
# KDE directory preferences
|
45
|
-
.directory
|
46
|
-
|
47
|
-
|
48
|
-
### OSX ###
|
10
|
+
*.bundle
|
11
|
+
*.so
|
12
|
+
*.o
|
13
|
+
*.a
|
14
|
+
mkmf.log
|
15
|
+
.tags*
|
16
|
+
*.gem
|
17
|
+
Gemfile.lock
|
49
18
|
.DS_Store
|
50
|
-
.AppleDouble
|
51
|
-
.LSOverride
|
52
|
-
|
53
|
-
# Icon must end with two \r
|
54
|
-
Icon
|
55
|
-
|
56
|
-
|
57
|
-
# Thumbnails
|
58
|
-
._*
|
59
|
-
|
60
|
-
# Files that might appear on external disk
|
61
|
-
.Spotlight-V100
|
62
|
-
.Trashes
|
63
|
-
|
64
|
-
# Directories potentially created on remote AFP share
|
65
|
-
.AppleDB
|
66
|
-
.AppleDesktop
|
67
|
-
Network Trash Folder
|
68
|
-
Temporary Items
|
69
|
-
.apdisk
|
70
|
-
|
71
|
-
|
72
|
-
### SublimeText ###
|
73
|
-
# cache files for sublime text
|
74
|
-
*.tmlanguage.cache
|
75
|
-
*.tmPreferences.cache
|
76
|
-
*.stTheme.cache
|
77
|
-
|
78
|
-
# workspace files are user-specific
|
79
|
-
*.sublime-workspace
|
80
|
-
|
81
|
-
# project files should be checked into the repository, unless a significant
|
82
|
-
# proportion of contributors will probably not be using SublimeText
|
83
|
-
# *.sublime-project
|
84
|
-
|
85
|
-
# sftp configuration file
|
86
|
-
sftp-config.json
|
87
|
-
|
data/CHANGELOG
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
## 更新记录
|
2
|
+
### FIR-CLI 1.0.0
|
3
|
+
- 重大重构
|
4
|
+
- 优化启动及运行速度
|
5
|
+
- 增加各指令的 alias
|
6
|
+
- 增加全局参数, -T, -L, -V, -q, -h, 分别为 token, log, verbose, quite, help 参数
|
7
|
+
- 增加输入 log
|
8
|
+
- 修正部分系统安装失败问题
|
9
|
+
- 修正部分服务器安装出现编码失败问题
|
10
|
+
- 重写 ipa 解析器, 去除 `miniz.c`, 增加 pngcrash
|
11
|
+
- build_ipa 增加默认 build 路径, `fir b` 则默认 build 当前路径
|
12
|
+
- build_ipa 增加输出 dSYM 符号表文件
|
13
|
+
- build_ipa 增加输出 xcodebuild 的信息
|
14
|
+
- 去掉输出信息颜色, 方便查看 log
|
15
|
+
- 简化 --verbose 参数, 简化为 `--verbose --no-verbose`, 默认输出为 INFO
|
16
|
+
|
17
|
+
### FIR-CLI 0.2.3
|
18
|
+
- 去除重签名功能, iOS 8.1.3 之后不支持重签名
|
19
|
+
|
20
|
+
### FIR-CLI 0.2.2
|
21
|
+
- 修复 WARNING: The rest_client gem is deprecated
|
22
|
+
|
23
|
+
### FIR-CLI 0.2.1
|
24
|
+
- 修正解析带空格的文件出租哦问题
|
25
|
+
|
26
|
+
### FIR-CLI 0.2.0
|
27
|
+
- 新指令 `build_ipa`
|
28
|
+
|
29
|
+
### FIR-CLI 0.1.8
|
30
|
+
- 支持 ruby 1.9.x
|
31
|
+
- 规范输出参数选项,支持无颜色信息输出
|
32
|
+
-`--verbose=v|vv|vvv`:设置输出级别
|
33
|
+
-`--quiet` 与 `--no-quiet`:设置是否不输出辅助信息
|
34
|
+
-`--color` 与 `--no-color`:设置输出是否携带颜色信息
|
35
|
+
- 修复 ipa 应用图标不清晰问题
|
36
|
+
- 增加切换配置文件功能:使用此功能可以在多个用户中切换使用
|
data/Gemfile
CHANGED
data/LICENSE.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
GNU GENERAL PUBLIC LICENSE
|
2
2
|
Version 3, 29 June 2007
|
3
3
|
|
4
|
-
Copyright (C)
|
4
|
+
Copyright (C) 2015 Fly It Remotely LLC. <http://fir.im/>
|
5
5
|
|
6
6
|
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
|
7
7
|
|
data/README.md
CHANGED
@@ -1,157 +1,137 @@
|
|
1
1
|
FIR.im CLI
|
2
2
|
---
|
3
|
-
> FIR.im CLI
|
4
|
-
|
5
|
-
## 新指令 `build_ipa`
|
6
|
-
> 这个指令对 `xcodebuild` 这个原生指令进行了包装,将常用的参数名简化,同时支持全部的自带参数和设置。
|
7
|
-
|
8
|
-
### 编译并获得 ipa
|
9
|
-
|
10
|
-
```
|
11
|
-
$ fir build_ipa path/to/project -o path/to/output
|
12
|
-
> 欢迎使用 FIR.im 命令行工具,如需帮助请输入: fir help
|
13
|
-
> 正在编译
|
14
|
-
> 正在打包 app: demo.app 到 path/to/output/demo.ipa
|
15
|
-
> 完成
|
16
|
-
```
|
17
|
-
|
18
|
-
### 复杂一点
|
19
|
-
```
|
20
|
-
$ fir build_ipa path/to/workspace -o path/to/output -w -C Release -s allTargets GCC_PREPROCESSOR_DEFINITIONS="FOO=bar"
|
21
|
-
```
|
22
|
-
|
23
|
-
该指令在指向的目录中,找到第一个 workspace 文件,对其进行编译。使用 `Release` 设置,编译策略为 `allTargets`,同时设置了预编译参数 `FOO`。
|
24
|
-
|
25
|
-
### 一步,从源代码到 FIR.im
|
26
|
-
> 只需要多输入一个 -p
|
27
|
-
|
28
|
-
```
|
29
|
-
$ fir build_ipa path/to/project -p
|
30
|
-
> 欢迎使用 FIR.im 命令行工具,如需帮助请输入: fir help
|
31
|
-
> 正在编译
|
32
|
-
> 正在打包 app: demo.app 到 /var/folders/z7/7_cp03nx0535g0cd6ynfmxt80000gn/T/d20141218-13295-1oe0zlm/demo.ipa
|
33
|
-
> 完成
|
34
|
-
> 正在发布 demo.ipa
|
35
|
-
> 正在解析 ipa 文件...
|
36
|
-
> 正在获取 im.fir.demo@FIR.im 的应用信息...
|
37
|
-
> 上传应用...
|
38
|
-
> 上传应用成功
|
39
|
-
> 正在更新 fir 的应用信息...
|
40
|
-
> 更新成功
|
41
|
-
> 正在更新 fir 的应用版本信息...
|
42
|
-
> 更新成功
|
43
|
-
> 正在获取 im.fir.demo@FIR.im 的应用信息...
|
44
|
-
> http://fir.im/xxxx
|
45
|
-
```
|
3
|
+
> FIR.im CLI 可以通过指令查看, 上传, 编译应用
|
46
4
|
|
47
5
|
## 使用入门
|
48
6
|
### 从安装入手
|
49
7
|
|
50
|
-
FIR.im CLI 使用
|
8
|
+
FIR.im CLI 使用 Ruby 构建,只要安装相应 ruby gem 即可:
|
51
9
|
|
52
10
|
```shell
|
53
|
-
$ sudo gem install fir-cli
|
11
|
+
$ sudo gem install fir-cli --no-ri --no-rdoc
|
54
12
|
```
|
55
13
|
|
56
14
|
安装后,你可以在命令行执行指令
|
57
15
|
|
58
16
|
```shell
|
59
17
|
$ fir
|
60
|
-
> 欢迎使用 FIR.im 命令行工具,如需帮助请输入: fir help
|
61
18
|
Commands:
|
62
|
-
fir build_ipa
|
63
|
-
fir
|
64
|
-
fir
|
65
|
-
fir
|
66
|
-
fir
|
67
|
-
fir
|
68
|
-
fir
|
69
|
-
|
70
|
-
|
71
|
-
|
19
|
+
fir build_ipa BUILD_DIR [options] [settings] # Build iOS app (alias: 'b').
|
20
|
+
fir help # Describe available commands or one specific command.
|
21
|
+
fir info APP_FILE_PATH # Show iOS/Android app's info, support ipa/apk file (aliases: 'i').
|
22
|
+
fir login # Login FIR.im (aliases: 'l').
|
23
|
+
fir publish APP_FILE_PATH # Publish iOS/Android app to FIR.im, support ipa/apk file (aliases: 'p').
|
24
|
+
fir upgrade # Upgrade FIR-CLI and quit (aliases: u).
|
25
|
+
fir version # Show FIR-CLI version number and quit (aliases: v)
|
26
|
+
|
27
|
+
Options:
|
28
|
+
-T, [--token=TOKEN] # User's token at FIR.im
|
29
|
+
-L, [--logfile=LOGFILE] # Path to writable logfile
|
30
|
+
-V, [--verbose], [--no-verbose] # Show verbose
|
31
|
+
# Default: true
|
32
|
+
-q, [--quiet], [--no-quiet] # Silence commands
|
33
|
+
-h, [--help], [--no-help] # Show this help message and quit
|
34
|
+
```
|
35
|
+
|
36
|
+
### 参数说明
|
37
|
+
|
38
|
+
- `alias <short command>` 意味着可以用 alias 别名来代替该指令, 例如 `fir b`
|
39
|
+
- `-T` 用户在 FIR.im 上的 token, `publish` 需要使用此参数
|
40
|
+
- `-L` 指定 FIR-CLI 的输出 log, 默认为 STDOUT
|
41
|
+
- `-V` Verbose, 默认为输出所有信息( INFO 和 ERROR), 如果设置 `--no-verbose`, 则只输出 ERROR 信息
|
42
|
+
- `-q` 静默模式, 默认关闭
|
43
|
+
- `-h` 查看帮助
|
72
44
|
|
73
45
|
### 发布一个应用
|
74
46
|
|
75
|
-
|
47
|
+
输入下面的指令便可轻松发布应用, 支持 ipa 和 apk 文件
|
76
48
|
|
77
49
|
```shell
|
78
|
-
$ fir
|
50
|
+
$ fir p path/to/application -T YOUR_FIR_TOKEN
|
79
51
|
```
|
80
52
|
|
81
|
-
|
53
|
+
如果在此之前, 已经使用 `fir login` 命令登录过, 则可省略 `-T` 参数
|
82
54
|
|
83
55
|
```shell
|
84
|
-
>
|
85
|
-
>
|
86
|
-
>
|
87
|
-
|
56
|
+
> I, [2015-02-28T23:14:40.312010 #36861] INFO -- : Publishing app.......
|
57
|
+
> I, [2015-02-28T23:14:45.312000 #36861] INFO -- : ✈ -------------------------------------------- ✈
|
58
|
+
> I, [2015-02-28T23:14:48.311900 #36861] INFO -- : Converting app's icon......
|
59
|
+
> I, [2015-02-28T23:14:48.311900 #36861] INFO -- : Uploading app's icon......
|
60
|
+
> I, [2015-02-28T23:14:48.311900 #36861] INFO -- : Uploading app......
|
61
|
+
> ..........
|
62
|
+
> I, [2015-02-28T23:14:46.312000 #36861] INFO -- : ✈ -------------------------------------------- ✈
|
63
|
+
> I, [2015-02-28T23:14:48.311900 #36861] INFO -- : Published succeed: http://fir.im/xxx
|
88
64
|
```
|
89
65
|
|
90
|
-
|
66
|
+
### 方便一点
|
67
|
+
|
68
|
+
如果觉得每次都输入 `-T` 很不方便, 那么可使用 `login` 命令
|
91
69
|
|
92
70
|
```shell
|
93
|
-
|
94
|
-
> 上传应用...
|
95
|
-
> 上传应用成功
|
96
|
-
> 正在更新 fir 的应用信息...
|
97
|
-
> 更新成功
|
98
|
-
> 正在更新 fir 的应用版本信息...
|
99
|
-
> 更新成功
|
100
|
-
> http://fir.im/xxxxx
|
71
|
+
$ fir l
|
101
72
|
```
|
102
73
|
|
103
|
-
用户 token 可在[这里](http://fir.im/user/info)查看
|
74
|
+
这时系统会提示输入用户 token, 用户 token 可在[这里](http://fir.im/user/info)查看
|
104
75
|
|
105
|
-
|
76
|
+
```shell
|
77
|
+
> Please enter your FIR.im token:
|
78
|
+
> I, [2015-03-01T18:26:42.718715 #38624] INFO -- : Login succeed, current user's email: xxx@fir.im
|
106
79
|
|
107
|
-
|
80
|
+
```
|
108
81
|
|
109
|
-
|
110
|
-
|
82
|
+
### 编译并获得 ipa
|
83
|
+
> 该指令 `build_ipa` 对 `xcodebuild` 原生指令进行了封装, 将常用的参数名简化, 支持全部的自带参数及设置, 同时输出符号表 .dSYM 文件.
|
84
|
+
|
85
|
+
```
|
86
|
+
$ fir build_ipa path/to/project -o path/to/output
|
87
|
+
> I, [2015-02-28T23:14:33.501293 #36861] INFO -- : Building......
|
88
|
+
> I, [2015-02-28T23:14:33.501400 #36861] INFO -- : ✈ -------------------------------------------- ✈
|
89
|
+
> I, [2015-02-28T23:14:38.311632 #36861] INFO -- : Build settings from command line:
|
90
|
+
> ..........
|
91
|
+
> I, [2015-02-28T23:14:38.312012 #36861] INFO -- : Build Success
|
111
92
|
```
|
112
93
|
|
113
|
-
|
94
|
+
### 复杂一点
|
95
|
+
```
|
96
|
+
$ fir b path/to/workspace -o path/to/output -w -C Release -t allTargets GCC_PREPROCESSOR_DEFINITIONS="FOO=bar"
|
97
|
+
```
|
98
|
+
|
99
|
+
该指令在指向的目录中,找到第一个 workspace 文件,对其进行编译。使用 `Release` 设置,编译策略为 `allTargets`,同时设置了预编译参数 `FOO`。
|
100
|
+
|
101
|
+
### 一步, 从源代码到 FIR.im
|
102
|
+
> 只需要输入 -p -T
|
114
103
|
|
115
|
-
```shell
|
116
|
-
> 欢迎使用 FIR.im 命令行工具,如需帮助请输入: fir help
|
117
|
-
输入你的用户 token:
|
118
104
|
```
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
>
|
123
|
-
>
|
105
|
+
$ fir build_ipa path/to/project -o path/to/output -p -T YOUR_FIR_TOKEN
|
106
|
+
> I, [2015-02-28T23:14:33.501293 #36861] INFO -- : Building......
|
107
|
+
> I, [2015-02-28T23:14:33.501400 #36861] INFO -- : ✈ -------------------------------------------- ✈
|
108
|
+
> I, [2015-02-28T23:14:38.311632 #36861] INFO -- : Build settings from command line:
|
109
|
+
> ..........
|
110
|
+
> I, [2015-02-28T23:14:38.312012 #36861] INFO -- : Build Success
|
111
|
+
> I, [2015-02-28T23:14:40.312010 #36861] INFO -- : Publishing app.......
|
112
|
+
> I, [2015-02-28T23:14:45.312000 #36861] INFO -- : ✈ -------------------------------------------- ✈
|
113
|
+
> ..........
|
114
|
+
> I, [2015-02-28T23:14:46.312000 #36861] INFO -- : ✈ -------------------------------------------- ✈
|
115
|
+
> I, [2015-02-28T23:14:48.311900 #36861] INFO -- : Published succeed: http://fir.im/xxx
|
124
116
|
```
|
125
117
|
|
126
|
-
##
|
118
|
+
## 需要帮助?
|
127
119
|
|
128
120
|
输入以下指令获取全面功能介绍
|
129
121
|
|
130
122
|
```shell
|
131
|
-
$ fir
|
123
|
+
$ fir -h
|
124
|
+
$ fir publish -h
|
132
125
|
```
|
133
126
|
|
134
|
-
如果还有疑问随时发邮件至[fir-cli](mailto:
|
127
|
+
如果还有疑问随时发邮件至[fir-cli](mailto: hi@fir.im)
|
135
128
|
|
136
129
|
## 永远使用最新功能
|
137
130
|
|
138
|
-
下面的指令会自动更新
|
131
|
+
下面的指令会自动更新 FIR.im CLI
|
139
132
|
|
140
133
|
```shell
|
141
134
|
$ fir upgrade
|
142
135
|
```
|
143
136
|
|
144
137
|
随时更新以使用最新功能
|
145
|
-
|
146
|
-
## 更新记录
|
147
|
-
### FIR-cli 0.2.0
|
148
|
-
- 新指令 `build_ipa`
|
149
|
-
|
150
|
-
### FIR-cli 0.1.8
|
151
|
-
- 支持 ruby 1.9.x
|
152
|
-
- 规范输出参数选项,支持无颜色信息输出
|
153
|
-
-`--verbose=v|vv|vvv`:设置输出级别
|
154
|
-
-`--quiet` 与 `--no-quiet`:设置是否不输出辅助信息
|
155
|
-
-`--color` 与 `--no-color`:设置输出是否携带颜色信息
|
156
|
-
- 修复 ipa 应用图标不清晰问题
|
157
|
-
- 增加切换配置文件功能:使用此功能可以在多个用户中切换使用
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/fir
CHANGED
@@ -1,16 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
#
|
2
|
+
# encoding: utf-8
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
Fir::Cli.find_extends.each { |g| require g }
|
4
|
+
require_relative '../lib/fir'
|
8
5
|
|
9
6
|
begin
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
puts
|
7
|
+
system "export LC_ALL=en_US.UTF-8;export LC_CTYPE=en_US.UTF-8;export LANG=en_US.UTF-8"
|
8
|
+
FIR::CLI.start ARGV
|
9
|
+
rescue => e
|
10
|
+
raise e if $DEBUG
|
11
|
+
STDERR.puts e.message
|
12
|
+
STDERR.puts e.backtrace.join("\n")
|
13
|
+
exit 1
|
15
14
|
end
|
16
|
-
|
data/fir-cli.gemspec
CHANGED
@@ -1,34 +1,55 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'fir
|
5
|
+
require 'fir/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = "fir-cli"
|
9
|
+
spec.version = FIR::VERSION
|
10
|
+
spec.authors = ["FIR.im"]
|
11
|
+
spec.email = ["dev@fir.im"]
|
12
|
+
spec.date = Time.now.strftime("%Y-%m-%d")
|
13
|
+
spec.summary = %q{FIR.im command tool}
|
14
|
+
spec.description = %q{FIR.im command tool, support iOS and Android}
|
15
|
+
spec.homepage = "http://blog.fir.im/2014/fir_cli"
|
16
|
+
spec.license = "GPLv3"
|
17
|
+
|
18
|
+
spec.files = `git ls-files -z`.split("\x0")
|
19
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
|
+
spec.require_paths = ["lib"]
|
5
22
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
s.homepage = 'http://blog.fir.im/2014/fir-cli'
|
13
|
-
s.authors = ['FIR.im']
|
14
|
-
s.email = 'fir-cli@fir.im'
|
15
|
-
s.license = 'GPLv3'
|
23
|
+
spec.post_install_message = %q(
|
24
|
+
______________ ________ ____
|
25
|
+
/ ____/ _/ __ \ / ____/ / / _/
|
26
|
+
/ /_ / // /_/ /_____/ / / / / /
|
27
|
+
/ __/ _/ // _, _/_____/ /___/ /____/ /
|
28
|
+
/_/ /___/_/ |_| \____/_____/___/
|
16
29
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
30
|
+
## 更新记录
|
31
|
+
### FIR-CLI 1.0.0
|
32
|
+
- 重大重构
|
33
|
+
- 优化启动及运行速度
|
34
|
+
- 增加各指令的 alias
|
35
|
+
- 增加全局参数, -T, -L, -V, -q, -h, 分别为 token, log, verbose, quite, help 参数
|
36
|
+
- 增加输入 log
|
37
|
+
- 修正部分系统安装失败问题
|
38
|
+
- 修正部分服务器安装出现编码失败问题
|
39
|
+
- 重写 ipa 解析器, 去除 `miniz.c`, 增加 pngcrash
|
40
|
+
- build_ipa 增加默认 build 路径, `fir b` 则默认 build 当前路径
|
41
|
+
- build_ipa 增加输出 dSYM 符号表文件
|
42
|
+
- build_ipa 增加输出 xcodebuild 的信息
|
43
|
+
- 去掉输出信息颜色, 方便查看 log
|
44
|
+
- 简化 --verbose 参数, 简化为 `--verbose --no-verbose`, 默认输出为 INFO
|
45
|
+
)
|
21
46
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
s.add_dependency 'rest-client', '~> 1.7'
|
26
|
-
s.add_dependency 'paint', '~> 0.9'
|
27
|
-
s.add_dependency 'thor', '~> 0.19'
|
28
|
-
s.add_dependency 'ruby_apk', '~> 0.7'
|
29
|
-
s.add_dependency 'highline', '~> 1.6'
|
30
|
-
s.add_dependency 'rubyzip', '~> 0.9.9'
|
47
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
48
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
49
|
+
spec.add_development_dependency "pry", "~> 0.11"
|
31
50
|
|
32
|
-
|
33
|
-
|
51
|
+
spec.add_dependency "thor", "~> 0.19"
|
52
|
+
spec.add_dependency "CFPropertyList", "~> 2.3"
|
53
|
+
spec.add_dependency "rest-client", "~> 1.7"
|
54
|
+
spec.add_dependency "ruby_android", "~> 0.7"
|
34
55
|
end
|
data/lib/fir/api.yml
ADDED
data/lib/fir/cli.rb
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module FIR
|
4
|
+
class CLI < Thor
|
5
|
+
class_option :token, type: :string, aliases: "-T", desc: "User's token at FIR.im"
|
6
|
+
class_option :logfile, type: :string, aliases: "-L", desc: "Path to writable logfile"
|
7
|
+
class_option :verbose, type: :boolean, aliases: "-V", desc: "Show verbose", default: true
|
8
|
+
class_option :quiet, type: :boolean, aliases: "-q", desc: "Silence commands"
|
9
|
+
class_option :help, type: :boolean, aliases: "-h", desc: "Show this help message and quit"
|
10
|
+
|
11
|
+
desc "build_ipa BUILD_DIR [options] [settings]", "Build iOS app (alias: 'b')."
|
12
|
+
long_desc <<-LONGDESC
|
13
|
+
`build_ipa` command will auto build your project/workspace to an ipa package
|
14
|
+
and it also can auto publish your built ipa to FIR.im if use `-p` option.
|
15
|
+
Internally, it use `xcodebuild` to accomplish these things, use `man xcodebuild` to get more information.
|
16
|
+
|
17
|
+
Example:
|
18
|
+
|
19
|
+
$ fir b <project dir> [-C <configuration>] [-t <target name>] [-o <ipa output dir>] [settings] [-c <changelog>] [-p -T <your token>]
|
20
|
+
|
21
|
+
$ fir b <workspace dir> -w -s <scheme name> [-C <configuration>] [-t <target name>] [-o <ipa output dir>] [settings] [-c <changelog>] [-p -T <your token>]
|
22
|
+
LONGDESC
|
23
|
+
map ["b", "build"] => :build_ipa
|
24
|
+
method_option :workspace, type: :boolean, aliases: "-w", desc: "Set true/false if build workspace"
|
25
|
+
method_option :scheme, type: :string, aliases: "-s", desc: "Set the scheme NAME if build workspace"
|
26
|
+
method_option :configuration, type: :string, aliases: "-C", desc: "Use the build configuration NAME for building each target"
|
27
|
+
method_option :target, type: :string, aliases: "-t", desc: "Build the target specified by targetname"
|
28
|
+
method_option :output, type: :string, aliases: "-o", desc: "IPA output path, the default is: BUILD_DIR/build_ipa"
|
29
|
+
method_option :publish, type: :boolean, aliases: "-p", desc: "Set true/false if publish to FIR.im"
|
30
|
+
method_option :short, type: :string, aliases: "-s", desc: "Set custom short link if publish to FIR.im"
|
31
|
+
method_option :changelog, type: :string, aliases: "-c", desc: "Set changelog if publish to FIR.im"
|
32
|
+
def build_ipa *args
|
33
|
+
prepare :build_ipa
|
34
|
+
|
35
|
+
FIR.build_ipa(*args, options)
|
36
|
+
end
|
37
|
+
|
38
|
+
desc "info APP_FILE_PATH", "Show iOS/Android app's info, support ipa/apk file (aliases: 'i')."
|
39
|
+
map "i" => :info
|
40
|
+
method_option :all, type: :boolean, aliases: "-a", desc: "Show all information in application"
|
41
|
+
def info *args
|
42
|
+
prepare :info
|
43
|
+
|
44
|
+
FIR.info(*args, options)
|
45
|
+
end
|
46
|
+
|
47
|
+
desc "publish APP_FILE_PATH", "Publish iOS/Android app to FIR.im, support ipa/apk file (aliases: 'p')."
|
48
|
+
map "p" => :publish
|
49
|
+
method_option :short, type: :string, aliases: "-s", desc: "Set custom short link"
|
50
|
+
method_option :changelog, type: :string, aliases: "-c", desc: "Set changelog"
|
51
|
+
def publish *args
|
52
|
+
prepare :publish
|
53
|
+
|
54
|
+
FIR.publish(*args, options)
|
55
|
+
end
|
56
|
+
|
57
|
+
desc "login", "Login FIR.im (aliases: 'l')."
|
58
|
+
map "l" => :login
|
59
|
+
def login *args
|
60
|
+
prepare :login
|
61
|
+
|
62
|
+
token = options[:token] || args.first || ask("Please enter your FIR.im token:", :white, echo: true)
|
63
|
+
FIR.login(token)
|
64
|
+
end
|
65
|
+
|
66
|
+
desc "upgrade", "Upgrade FIR-CLI and quit (aliases: u)."
|
67
|
+
map "u" => :upgrade
|
68
|
+
def upgrade
|
69
|
+
prepare :upgrade
|
70
|
+
say "✈ Upgrade FIR-CLI (use `gem install fir-cli --no-ri --no-rdoc`)"
|
71
|
+
say `gem install fir-cli --no-ri --no-rdoc`
|
72
|
+
end
|
73
|
+
|
74
|
+
desc "version", "Show FIR-CLI version number and quit (aliases: v)"
|
75
|
+
map ["v", "-v", "--version"] => :version
|
76
|
+
def version
|
77
|
+
say "✈ FIR-CLI #{FIR::VERSION}"
|
78
|
+
end
|
79
|
+
|
80
|
+
desc "help", "Describe available commands or one specific command."
|
81
|
+
map Thor::HELP_MAPPINGS => :help
|
82
|
+
def help command = nil, subcommand = false
|
83
|
+
super
|
84
|
+
end
|
85
|
+
|
86
|
+
no_commands do
|
87
|
+
def invoke_command command, *args
|
88
|
+
logfile = options[:logfile].blank? ? STDOUT : options[:logfile]
|
89
|
+
logfile = '/dev/null' if options[:quiet]
|
90
|
+
FIR.logger = Logger.new(logfile)
|
91
|
+
FIR.logger.level = options[:verbose] ? Logger::INFO : Logger::ERROR
|
92
|
+
super
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
private
|
97
|
+
|
98
|
+
def prepare task
|
99
|
+
if options.help?
|
100
|
+
help(task.to_s)
|
101
|
+
raise SystemExit
|
102
|
+
end
|
103
|
+
$DEBUG = true if ENV["DEBUG"]
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
107
|
+
end
|
Binary file
|