bigkeeper 0.7.6 → 0.7.7
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/Gemfile.lock +1 -1
- data/big_keeper.gemspec +3 -3
- data/docs/en-US/README.md +2 -2
- data/docs/zh-CN/BIGKEEPER_FILE.md +2 -2
- data/docs/zh-CN/FEATURE&HOTFIX.md +18 -11
- data/lib/big_keeper.rb +9 -289
- data/lib/big_keeper/command/feature&hotfix.rb +140 -0
- data/lib/big_keeper/command/feature&hotfix/finish.rb +7 -4
- data/lib/big_keeper/command/feature&hotfix/publish.rb +7 -6
- data/lib/big_keeper/command/feature&hotfix/pull.rb +2 -2
- data/lib/big_keeper/command/feature&hotfix/push.rb +2 -2
- data/lib/big_keeper/command/feature&hotfix/rebase.rb +2 -2
- data/lib/big_keeper/command/feature&hotfix/start.rb +16 -6
- data/lib/big_keeper/command/feature&hotfix/switch.rb +4 -6
- data/lib/big_keeper/command/feature&hotfix/update.rb +6 -4
- data/lib/big_keeper/command/pod.rb +36 -0
- data/lib/big_keeper/command/release.rb +68 -0
- data/lib/big_keeper/command/release/home.rb +2 -1
- data/lib/big_keeper/dependency/dep_gradle_operator.rb +26 -130
- data/lib/big_keeper/dependency/dep_operator.rb +4 -10
- data/lib/big_keeper/dependency/dep_pod_operator.rb +9 -53
- data/lib/big_keeper/dependency/dep_service.rb +2 -2
- data/lib/big_keeper/dependency/dep_type.rb +4 -4
- data/lib/big_keeper/model/gitflow_type.rb +12 -0
- data/lib/big_keeper/service/git_service.rb +2 -2
- data/lib/big_keeper/service/module_service.rb +15 -6
- data/lib/big_keeper/util/cache_operator.rb +69 -0
- data/lib/big_keeper/util/gradle_operator.rb +151 -0
- data/lib/big_keeper/util/podfile_operator.rb +4 -4
- data/lib/big_keeper/version.rb +1 -1
- data/resources/keynote/big-keeper-readme-feature.key +0 -0
- metadata +10 -6
@@ -22,4 +22,73 @@ module BigKeeper
|
|
22
22
|
FileUtils.rm_r(@cache_path)
|
23
23
|
end
|
24
24
|
end
|
25
|
+
|
26
|
+
class ModuleCacheOperator
|
27
|
+
def initialize(path)
|
28
|
+
@cache_path = File.expand_path("#{path}/.bigkeeper")
|
29
|
+
@modules = {"git" => {"all" => [], "current" => []}, "path" => {"all" => [], "current" => []}}
|
30
|
+
|
31
|
+
FileUtils.mkdir_p(@cache_path) unless File.exist?(@cache_path)
|
32
|
+
|
33
|
+
if File.exist?("#{@cache_path}/module.cache")
|
34
|
+
file = File.open("#{@cache_path}/module.cache", 'r')
|
35
|
+
@modules = JSON.load(file.read())
|
36
|
+
file.close
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def all_path_modules
|
41
|
+
@modules["path"]["all"]
|
42
|
+
end
|
43
|
+
|
44
|
+
def current_path_modules
|
45
|
+
@modules["path"]["current"]
|
46
|
+
end
|
47
|
+
|
48
|
+
def all_git_modules
|
49
|
+
@modules["git"]["all"]
|
50
|
+
end
|
51
|
+
|
52
|
+
def current_git_modules
|
53
|
+
@modules["git"]["current"]
|
54
|
+
end
|
55
|
+
|
56
|
+
def cache_path_modules(modules)
|
57
|
+
@modules["path"]["all"] = modules
|
58
|
+
cache_modules
|
59
|
+
end
|
60
|
+
|
61
|
+
def cache_git_modules(modules)
|
62
|
+
@modules["git"]["all"] = modules
|
63
|
+
cache_modules
|
64
|
+
end
|
65
|
+
|
66
|
+
def add_branch_module(module_name)
|
67
|
+
@modules["path"]["current"].delete(module_name)
|
68
|
+
@modules["git"]["current"] << module_name
|
69
|
+
cache_modules
|
70
|
+
end
|
71
|
+
|
72
|
+
def del_branch_module(module_name)
|
73
|
+
@modules["git"]["current"].delete(module_name)
|
74
|
+
cache_modules
|
75
|
+
end
|
76
|
+
|
77
|
+
def add_path_module(module_name)
|
78
|
+
@modules["git"]["current"].delete(module_name)
|
79
|
+
@modules["path"]["current"] << module_name
|
80
|
+
cache_modules
|
81
|
+
end
|
82
|
+
|
83
|
+
def del_path_module(module_name)
|
84
|
+
@modules["path"]["current"].delete(module_name)
|
85
|
+
cache_modules
|
86
|
+
end
|
87
|
+
|
88
|
+
def cache_modules
|
89
|
+
file = File.new("#{@cache_path}/module.cache", 'w')
|
90
|
+
file << @modules.to_json
|
91
|
+
file.close
|
92
|
+
end
|
93
|
+
end
|
25
94
|
end
|
@@ -0,0 +1,151 @@
|
|
1
|
+
require 'big_keeper/util/cache_operator'
|
2
|
+
|
3
|
+
module BigKeeper
|
4
|
+
# Operator for podfile
|
5
|
+
class GradleOperator
|
6
|
+
def initialize(path)
|
7
|
+
@path = File.expand_path(path)
|
8
|
+
end
|
9
|
+
|
10
|
+
def backup
|
11
|
+
cache_operator = CacheOperator.new(@path)
|
12
|
+
cache_operator.save('settings.gradle')
|
13
|
+
Dir.glob("#{@path}/*/build.gradle").each do |build_gradle_file_path|
|
14
|
+
build_gradle_file = build_gradle_file_path.gsub!(/#{@path}/, '')
|
15
|
+
cache_operator.save(build_gradle_file)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def recover
|
20
|
+
cache_operator = CacheOperator.new(@path)
|
21
|
+
cache_operator.load('settings.gradle')
|
22
|
+
cache_operator.clean
|
23
|
+
end
|
24
|
+
|
25
|
+
def update_setting_config(current_module_name, user, modules)
|
26
|
+
CacheOperator.new(@path).load('settings.gradle')
|
27
|
+
begin
|
28
|
+
File.open("#{@path}/settings.gradle", 'a') do |file|
|
29
|
+
modules.each do |module_name|
|
30
|
+
next if current_module_name == module_name
|
31
|
+
file.puts "\r\ninclude ':module:#{module_name.downcase}'\r\n"
|
32
|
+
file.puts "project(':module:#{module_name.downcase}')." \
|
33
|
+
"projectDir = new File(rootProject.projectDir," \
|
34
|
+
"'#{BigkeeperParser.module_path(user, module_name)}/#{module_name.downcase}-lib')\r\n"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
ensure
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def update_module_config(module_name, module_type, source)
|
42
|
+
Dir.glob("#{@path}/*/build.gradle").each do |file|
|
43
|
+
temp_file = Tempfile.new('.build.gradle.tmp')
|
44
|
+
begin
|
45
|
+
version_flag = false
|
46
|
+
version_index = 0
|
47
|
+
|
48
|
+
File.open(file, 'r') do |file|
|
49
|
+
file.each_line do |line|
|
50
|
+
version_flag = true if line.include? 'modifyPom'
|
51
|
+
if version_flag
|
52
|
+
version_index += 1 if line.include? '{'
|
53
|
+
version_index -= 1 if line.include? '}'
|
54
|
+
|
55
|
+
version_flag = false if 0 == version_flag
|
56
|
+
|
57
|
+
temp_file.puts generate_version_config(line, module_name, module_type, source)
|
58
|
+
else
|
59
|
+
temp_file.puts generate_compile_config(line, module_name, module_type, source)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
temp_file.close
|
64
|
+
FileUtils.mv(temp_file.path, file)
|
65
|
+
ensure
|
66
|
+
temp_file.close
|
67
|
+
temp_file.unlink
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def generate_version_config(line, module_name, module_type, source)
|
73
|
+
if ModuleType::GIT == module_type
|
74
|
+
branch_name = GitOperator.new.current_branch(@path)
|
75
|
+
full_name = ''
|
76
|
+
|
77
|
+
# Get version part of source.addition
|
78
|
+
if 'develop' == source.addition || 'master' == source.addition
|
79
|
+
full_name = branch_name.sub(/([\s\S]*)\/(\d+.\d+.\d+)_([\s\S]*)/){ $2 }
|
80
|
+
else
|
81
|
+
full_name = branch_name.sub(/([\s\S]*)\/([\s\S]*)/){ $2 }
|
82
|
+
end
|
83
|
+
line.sub(/(\s*)version ('|")(\S*)('|")([\s\S]*)/){
|
84
|
+
"#{$1}version '#{full_name}'#{$5}"
|
85
|
+
}
|
86
|
+
elsif ModuleType::SPEC == module_type
|
87
|
+
line.sub(/(\s*)version ('|")(\S*)('|")([\s\S]*)/){
|
88
|
+
"#{$1}version '#{source}'#{$5}"
|
89
|
+
}
|
90
|
+
else
|
91
|
+
line
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def prefix_of_module(module_name)
|
96
|
+
prefix = ''
|
97
|
+
Dir.glob("#{@path}/.bigkeeper/*/build.gradle").each do |file|
|
98
|
+
File.open(file, 'r') do |file|
|
99
|
+
file.each_line do |line|
|
100
|
+
if line =~ /(\s*)([\s\S]*)('|")(\S*)#{module_name.downcase}(\S*)('|")(\S*)/
|
101
|
+
prefix = line.sub(/(\s*)([\s\S]*)('|")(\S*)#{module_name.downcase}(\S*)('|")(\S*)/){
|
102
|
+
$4
|
103
|
+
}
|
104
|
+
break
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
break unless prefix.empty?
|
109
|
+
end
|
110
|
+
|
111
|
+
prefix.chop
|
112
|
+
end
|
113
|
+
|
114
|
+
def generate_compile_config(line, module_name, module_type, source)
|
115
|
+
if ModuleType::PATH == module_type
|
116
|
+
line.sub(/(\s*)compile(\s*)('|")(\S*)#{module_name.downcase}(\S*)('|")(\S*)/){
|
117
|
+
"#{$1}compile project(':module:#{module_name.downcase}')"
|
118
|
+
}
|
119
|
+
elsif ModuleType::GIT == module_type
|
120
|
+
branch_name = GitOperator.new.current_branch(@path)
|
121
|
+
full_name = ''
|
122
|
+
|
123
|
+
# Get version part of source.addition
|
124
|
+
if 'develop' == source.addition || 'master' == source.addition
|
125
|
+
full_name = branch_name.sub(/([\s\S]*)\/(\d+.\d+.\d+)_([\s\S]*)/){ $2 }
|
126
|
+
else
|
127
|
+
full_name = branch_name.sub(/([\s\S]*)\/([\s\S]*)/){ $2 }
|
128
|
+
end
|
129
|
+
line.sub(/(\s*)([\s\S]*)('|")(\S*)#{module_name.downcase}(\S*)('|")(\S*)/){
|
130
|
+
if $2.include? 'moduleCompile'
|
131
|
+
"#{$1}moduleCompile '#{prefix_of_module(module_name)}#{module_name.downcase}:#{full_name}-SNAPSHOT'"
|
132
|
+
else
|
133
|
+
"#{$1}compile '#{prefix_of_module(module_name)}#{module_name.downcase}:#{full_name}-SNAPSHOT'"
|
134
|
+
end
|
135
|
+
}
|
136
|
+
elsif ModuleType::SPEC == module_type
|
137
|
+
line.sub(/(\s*)([\s\S]*)('|")(\S*)#{module_name.downcase}(\S*)('|")(\S*)/){
|
138
|
+
if $2.include? 'moduleCompile'
|
139
|
+
"#{$1}moduleCompile '#{prefix_of_module(module_name)}#{module_name.downcase}:#{source}'"
|
140
|
+
else
|
141
|
+
"#{$1}compile '#{prefix_of_module(module_name)}#{module_name.downcase}:#{source}'"
|
142
|
+
end
|
143
|
+
}
|
144
|
+
else
|
145
|
+
line
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
private :generate_compile_config, :generate_version_config, :prefix_of_module
|
150
|
+
end
|
151
|
+
end
|
@@ -26,16 +26,16 @@ module BigKeeper
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
def replace_all_module_release(path, module_names, version)
|
29
|
+
def replace_all_module_release(path, user, module_names, version)
|
30
30
|
module_names.each do |module_name|
|
31
|
-
DepService.dep_operator(path).update_module_config(
|
31
|
+
DepService.dep_operator(path, user).update_module_config(
|
32
32
|
module_name,
|
33
33
|
ModuleType::GIT,
|
34
34
|
GitInfo.new(BigkeeperParser.module_git(module_name), GitType::TAG, version))
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
def find_and_lock(podfile,dictionary)
|
38
|
+
def find_and_lock(podfile, dictionary)
|
39
39
|
temp_file = Tempfile.new('.Podfile.tmp')
|
40
40
|
begin
|
41
41
|
File.open(podfile, 'r') do |file|
|
@@ -57,7 +57,7 @@ module BigKeeper
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
-
def find_and_upgrade(podfile,dictionary)
|
60
|
+
def find_and_upgrade(podfile, dictionary)
|
61
61
|
temp_file = Tempfile.new('.Podfile.tmp')
|
62
62
|
begin
|
63
63
|
File.open(podfile, 'r') do |file|
|
data/lib/big_keeper/version.rb
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bigkeeper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mmoaay
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gli
|
@@ -192,8 +192,8 @@ dependencies:
|
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: 0.50.0
|
195
|
-
description: Efficiency improvement for iOS modular development, iOSer
|
196
|
-
tool can make modular development easier.
|
195
|
+
description: Efficiency improvement for iOS&Android modular development, iOSer&Androider
|
196
|
+
using this tool can make modular development easier.
|
197
197
|
email:
|
198
198
|
- mmoaay@sina.com
|
199
199
|
executables:
|
@@ -224,6 +224,7 @@ files:
|
|
224
224
|
- docs/zh-CN/RECOMMEND.md
|
225
225
|
- docs/zh-CN/RELEASE.md
|
226
226
|
- lib/big_keeper.rb
|
227
|
+
- lib/big_keeper/command/feature&hotfix.rb
|
227
228
|
- lib/big_keeper/command/feature&hotfix/delete.rb
|
228
229
|
- lib/big_keeper/command/feature&hotfix/finish.rb
|
229
230
|
- lib/big_keeper/command/feature&hotfix/publish.rb
|
@@ -233,7 +234,9 @@ files:
|
|
233
234
|
- lib/big_keeper/command/feature&hotfix/start.rb
|
234
235
|
- lib/big_keeper/command/feature&hotfix/switch.rb
|
235
236
|
- lib/big_keeper/command/feature&hotfix/update.rb
|
237
|
+
- lib/big_keeper/command/pod.rb
|
236
238
|
- lib/big_keeper/command/pod/podfile.rb
|
239
|
+
- lib/big_keeper/command/release.rb
|
237
240
|
- lib/big_keeper/command/release/home.rb
|
238
241
|
- lib/big_keeper/command/release/module.rb
|
239
242
|
- lib/big_keeper/dependency/dep_gradle_operator.rb
|
@@ -252,6 +255,7 @@ files:
|
|
252
255
|
- lib/big_keeper/util/file_operator.rb
|
253
256
|
- lib/big_keeper/util/git_operator.rb
|
254
257
|
- lib/big_keeper/util/gitflow_operator.rb
|
258
|
+
- lib/big_keeper/util/gradle_operator.rb
|
255
259
|
- lib/big_keeper/util/info_plist_operator.rb
|
256
260
|
- lib/big_keeper/util/logger.rb
|
257
261
|
- lib/big_keeper/util/pod_operator.rb
|
@@ -290,7 +294,7 @@ files:
|
|
290
294
|
- resources/readme/big-keeper-readme.010.png
|
291
295
|
- resources/readme/big-keeper-readme.011.png
|
292
296
|
- resources/readme/big-keeper-readme.012.png
|
293
|
-
homepage: https://github.com/BigKeeper/
|
297
|
+
homepage: https://github.com/BigKeeper/bigkeeper
|
294
298
|
licenses:
|
295
299
|
- MIT
|
296
300
|
metadata:
|
@@ -314,5 +318,5 @@ rubyforge_project:
|
|
314
318
|
rubygems_version: 2.5.1
|
315
319
|
signing_key:
|
316
320
|
specification_version: 4
|
317
|
-
summary: Efficiency improvement for iOS modular development.
|
321
|
+
summary: Efficiency improvement for iOS&Android modular development.
|
318
322
|
test_files: []
|