cocoapods-tag 0.0.3 → 0.0.4

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 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