cocoapods-tag 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +22 -0
- data/lib/cocoapods-tag/command/tag/auto.rb +35 -9
- data/lib/cocoapods-tag/gem_version.rb +1 -1
- data/lib/cocoapods-tag/tag.rb +10 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab723fa1e07606d3664af7a1ec85aacd255a2782722be6c733d727f86f1e47d9
|
4
|
+
data.tar.gz: eefc4e3111d15c9504ca69e894aff85a76ba8531aff01028fdb52f75e1068173
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f7a3e6579264821c391fcd54a23fd5a9fea86ce3344b176a951825578d57a3a52b5b5c9e085b1e879bde0511f4d29c5fdcb82bb9001bf6cc6689fac1e1d1092
|
7
|
+
data.tar.gz: a282fea1a342b38eea54357ac0967910bf8a428dceae26b77a0616198a066b660baf339ac4d3ca1ef2599f0c81302c568039797e05fcff426fc4ee46be0c991e
|
data/README.md
CHANGED
@@ -41,6 +41,26 @@ $ gem install cocoapods-tag
|
|
41
41
|
$ pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7" --spec-repo=xxx --quick
|
42
42
|
```
|
43
43
|
|
44
|
+
* 指定tag推送到的远端仓库(可以通过`git remote -v`查看)
|
45
|
+
|
46
|
+
```shell
|
47
|
+
$ pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7" --remote=origin
|
48
|
+
```
|
49
|
+
|
50
|
+
* 指定工作目录(插件执行的目录)
|
51
|
+
|
52
|
+
```shell
|
53
|
+
$ pod tag 0.1.7 "修改podspec版本号为0.1.7" --work-dir=xxx
|
54
|
+
```
|
55
|
+
|
56
|
+
* 为tag添加前后缀**(前后缀与版本号中间会自动用`-`分隔,不需要手动添加)**
|
57
|
+
|
58
|
+
以下面这行命令为例,`podspec`中的`version`为`0.1.7`,`source`字段中的`tag`为`mtxx-0.1.7-beta1`,最终推送到远端仓库的`tag`也是`mtxx-0.1.7-beta1`
|
59
|
+
|
60
|
+
```shell
|
61
|
+
$ pod tag 0.1.7 "修改podspec版本号为0.1.7" --prefix="mtxx" --suffix="beta1"
|
62
|
+
```
|
63
|
+
|
44
64
|
* 单独推送`podspec`到指定`spec repo`
|
45
65
|
|
46
66
|
```shell
|
@@ -60,3 +80,5 @@ ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/
|
|
60
80
|
|
61
81
|
大概解释一下就是:以`数字0-9`开头,中间可以包含`数字0-9`、`字母a-z A-Z`,特殊字符只能包含`.`和`-`,版本号前后可以有`0个或多个空格`
|
62
82
|
|
83
|
+
> 1. `cocoapods-tag`已经对版本号做了正则校验,不符合上面正则的版本号是无法通过的,这里写出来主要是为了提醒大家注意版本号的规范
|
84
|
+
> 2. 不建议版本号前后加空格
|
@@ -11,11 +11,11 @@ module Pod
|
|
11
11
|
self.description = <<-DESC
|
12
12
|
#{self.summary}
|
13
13
|
|
14
|
-
`
|
14
|
+
`VERSION`: podspec中的version字段,如果没有prefix和suffix,version与tag一样【必填】\n
|
15
15
|
`COMMIT_MSG`: commit信息【必填】\n
|
16
16
|
`TAG_MSG`: tag信息【可选,默认为"v[tag号]",比如:tag是"0.0.1",则tag信息是"v0.0.1"】\n
|
17
17
|
|
18
|
-
|
18
|
+
e.g.\n
|
19
19
|
1.使用默认tag信息\n
|
20
20
|
pod tag 0.1.7 "修改podspec版本号为0.1.7"\n
|
21
21
|
2.使用自定义tag信息\n
|
@@ -23,33 +23,59 @@ pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7"\n
|
|
23
23
|
3.推送podspec到spec repo\n
|
24
24
|
pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7" --spec-repo=xxx\n
|
25
25
|
4.跳过耗时校验\n
|
26
|
-
pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7" --
|
26
|
+
pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7" --quick\n
|
27
|
+
5.指定工作目录\n
|
28
|
+
pod tag 0.1.7 "修改podspec版本号为0.1.7" --work-dir=xxx\n
|
29
|
+
6.为tag指定前后缀\n
|
30
|
+
pod tag 0.1.7 "修改podspec版本号为0.1.7" --prefix="xxx" --suffix="xxx"\n
|
31
|
+
7.指定tag推送到的远端仓库\n
|
32
|
+
pod tag 0.1.7 "修改podspec版本号为0.1.7" --remote=xxx
|
27
33
|
DESC
|
28
34
|
|
29
35
|
self.arguments = [
|
30
|
-
CLAide::Argument.new('
|
36
|
+
CLAide::Argument.new('VERSION', true ),
|
31
37
|
CLAide::Argument.new('COMMIT_MSG', true),
|
32
38
|
CLAide::Argument.new('TAG_MSG', false)
|
33
39
|
]
|
34
40
|
|
35
41
|
def self.options
|
36
42
|
[
|
37
|
-
['--
|
38
|
-
['--
|
43
|
+
['--quick', '跳过一些耗时校验,如:远端仓库是否已经有该tag'],
|
44
|
+
['--remote=REMOTE', '指定tag推送到的远端仓库,可以通过`git remote -v`查看'],
|
45
|
+
['--spec-repo=SPECREPO', 'podspec推送到的repo,可以通过`pod repo list`查看'],
|
46
|
+
['--work-dir=WORKDIR', '执行命令的工作区'],
|
47
|
+
['--prefix=PREFIX', 'tag前缀'],
|
48
|
+
['--suffix=SUFFIX', 'tag后缀']
|
39
49
|
].concat(super)
|
40
50
|
end
|
41
51
|
|
42
52
|
def initialize(argv)
|
43
|
-
@
|
53
|
+
@version = argv.shift_argument
|
44
54
|
@commit_msg = argv.shift_argument
|
45
55
|
@tag_msg = argv.shift_argument
|
46
|
-
@spec_repo = argv.option('spec-repo', nil)
|
47
56
|
@quick = argv.flag?('quick', false)
|
57
|
+
@remote = argv.option('remote', false)
|
58
|
+
@spec_repo = argv.option('spec-repo', nil)
|
59
|
+
@work_dir = argv.option('work-dir', nil)
|
60
|
+
@prefix = argv.option('prefix', nil)
|
61
|
+
@suffix = argv.option('suffix', nil)
|
62
|
+
@tag = @version
|
63
|
+
unless @prefix.nil?
|
64
|
+
@tag = "#{@prefix}-#{@tag}"
|
65
|
+
end
|
66
|
+
unless @suffix.nil?
|
67
|
+
@tag = "#{@tag}-#{@suffix}"
|
68
|
+
end
|
48
69
|
super
|
49
70
|
end
|
50
71
|
|
51
72
|
def run
|
52
|
-
|
73
|
+
# 传入了工作目录
|
74
|
+
unless @work_dir.nil?
|
75
|
+
raise Informative, "不存在工作目录`#{@work_dir}`" unless File.exist?(@work_dir)
|
76
|
+
Dir.chdir(@work_dir)
|
77
|
+
end
|
78
|
+
tag = Pod::Tag.new(@version, @tag, @commit_msg, @tag_msg, @spec_repo, @quick, @remote)
|
53
79
|
tag.create
|
54
80
|
end
|
55
81
|
|
data/lib/cocoapods-tag/tag.rb
CHANGED
@@ -8,12 +8,14 @@ module Pod
|
|
8
8
|
GIT_REPO = ".git".freeze
|
9
9
|
PODSPEC_EXT = %w[podspec podspec.json].freeze
|
10
10
|
|
11
|
-
def initialize(tag, commit_msg, tag_msg, spec_repo = nil, quick = false)
|
11
|
+
def initialize(version, tag, commit_msg, tag_msg, spec_repo = nil, quick = false, remote_name = nil)
|
12
|
+
@version = version || raise(Informative, "缺少必填参数`version`")
|
12
13
|
@tag = tag || raise(Informative, "缺少必填参数`tag`")
|
13
14
|
@commit_msg = commit_msg || raise(Informative, "缺少必填参数`commit_msg`")
|
14
15
|
@tag_msg = tag_msg || "v#{@tag}"
|
15
16
|
@spec_repo = spec_repo
|
16
17
|
@quick = quick
|
18
|
+
@remote = remote_name
|
17
19
|
end
|
18
20
|
|
19
21
|
public
|
@@ -64,9 +66,9 @@ module Pod
|
|
64
66
|
|
65
67
|
# 正则校验版本号
|
66
68
|
def check_version
|
67
|
-
unless Pod::Vendor::Gem::Version.correct?(@
|
69
|
+
unless Pod::Vendor::Gem::Version.correct?(@version)
|
68
70
|
msg = <<-ERROR
|
69
|
-
|
71
|
+
版本号`#{@version}`格式不正确
|
70
72
|
版本号必须以数字`0-9`开头,可以包含数字`0-9`、字母`a-z A-Z`,特殊字符只能是`.`和`-`
|
71
73
|
具体请参考CocoaPods校验版本号的正则:
|
72
74
|
#{Pod::Vendor::Gem::Version::ANCHORED_VERSION_PATTERN}
|
@@ -86,7 +88,7 @@ module Pod
|
|
86
88
|
|
87
89
|
# 检查 git repo
|
88
90
|
def check_git_repo
|
89
|
-
|
91
|
+
print "检查本地git仓库\n".yellow
|
90
92
|
|
91
93
|
# 本地是否有 .git 目录
|
92
94
|
git_repo = File.join(Dir.pwd, GIT_REPO)
|
@@ -111,12 +113,12 @@ module Pod
|
|
111
113
|
|
112
114
|
# 检查本地是否已经有该 tag
|
113
115
|
print "\n检查本地仓库是否有tag:`#{@tag}`\n".yellow
|
114
|
-
raise Informative, "本地已经存在
|
116
|
+
raise Informative, "本地已经存在tag:#{@tag}" if `git tag`.split("\n").include?(@tag)
|
115
117
|
|
116
118
|
# 判断远端是否已经有该 tag
|
117
119
|
print "\n检查远端仓库是否有tag:`#{@tag}`\n".yellow
|
118
120
|
tags = `git ls-remote --tags #{remote}`.split("\n").select { |tag| tag.include?("refs/tags/#{@tag}") }
|
119
|
-
raise Informative, "远端仓库已经有该
|
121
|
+
raise Informative, "远端仓库已经有该tag:#{@tag}" unless tags.empty?
|
120
122
|
end
|
121
123
|
|
122
124
|
end
|
@@ -163,7 +165,7 @@ module Pod
|
|
163
165
|
lines = []
|
164
166
|
f.each_line do |line|
|
165
167
|
if line =~ /(^\s*.+\.version\s*=\s*).*/
|
166
|
-
line = line.sub(/(^\s*.+\.version\s*=\s*).*/, "#{$1}'#{@
|
168
|
+
line = line.sub(/(^\s*.+\.version\s*=\s*).*/, "#{$1}'#{@version}'")
|
167
169
|
end
|
168
170
|
if line =~ /(^\s*.+\.source\s*=\s*).*/
|
169
171
|
line = line.sub(/(^\s*.+\.source\s*=\s*).*/, "#{$1}#{des_source}")
|
@@ -178,7 +180,7 @@ module Pod
|
|
178
180
|
|
179
181
|
# 修改 *.podspec.json
|
180
182
|
def modify_podspec_json(file)
|
181
|
-
@spec_hash['version'] = @
|
183
|
+
@spec_hash['version'] = @version
|
182
184
|
@spec_hash['source'] = {
|
183
185
|
'git'=> @spec_hash['source']['git'],
|
184
186
|
'tag'=> "#{@tag}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-tag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04-
|
11
|
+
date: 2022-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cocoapods
|