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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69b23947908cd9859abaa7dd628fca94b271c16653bc5c101061486fcb3cecff
4
- data.tar.gz: ec017bb88326f01e4a5bf5481ea0b6b07caebb6c94b1233405b4e990dd422e44
3
+ metadata.gz: ab723fa1e07606d3664af7a1ec85aacd255a2782722be6c733d727f86f1e47d9
4
+ data.tar.gz: eefc4e3111d15c9504ca69e894aff85a76ba8531aff01028fdb52f75e1068173
5
5
  SHA512:
6
- metadata.gz: 4a2b28788338735f7bf6a7e27142ea590db539412a86b00cc41412eced1101c38a2eb6b5af36a78ebc687f92ff304ae3ffd80622384546bf39b90ce62aa2d1b3
7
- data.tar.gz: 59b0deeb4eacffc8e158016decc44b8379bcb16915af963be0a2654030a2470c37874bcf9608f9b3c101a256cb570e7967fe75b0dd2e0a308ba17f634cabbb07
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
- `TAG`: tag号【必填】\n
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
- eg:\n
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" --spec-repo=xxx --quick
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('TAG', true ),
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
- ['--spec-repo=SPECREPO', 'podspec 推送到的 spec repo ,可以通过`pod repo list`查看'],
38
- ['--quick', '跳过一些耗时校验,如:远端仓库是否已经有该 tag ']
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
- @tag = argv.shift_argument
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
- tag = Pod::Tag.new(@tag, @commit_msg, @tag_msg, @spec_repo, @quick)
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
 
@@ -1,3 +1,3 @@
1
1
  module CocoapodsTag
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -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?(@tag)
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
- # print "检查本地git仓库:\n".yellow
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, "本地已经存在 tag:#{@tag}" if `git tag`.split("\n").include?(@tag)
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, "远端仓库已经有该 tag:#{@tag}" unless tags.empty?
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}'#{@tag}'")
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'] = @tag
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.3
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-08 00:00:00.000000000 Z
11
+ date: 2022-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods