fir-cli 0.2.3.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|