bigkeeper 0.9.5 → 0.9.6
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/bin/big +1 -1
- data/lib/big_keeper/dependency/dep_gradle_operator.rb +22 -113
- data/lib/big_keeper/util/bigkeeper_parser.rb +12 -0
- data/lib/big_keeper/util/cache_operator.rb +3 -1
- data/lib/big_keeper/util/git_operator.rb +1 -1
- data/lib/big_keeper/util/gradle_content_generator.rb +26 -0
- data/lib/big_keeper/util/gradle_file_operator.rb +338 -0
- data/lib/big_keeper/util/gradle_module_operator.rb +69 -0
- data/lib/big_keeper/version.rb +1 -1
- metadata +5 -3
- data/lib/big_keeper/util/gradle_operator.rb +0 -86
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 875ec925ad5aa51547b3f7ab27520f5e1f8d42d2
|
4
|
+
data.tar.gz: '08f1cfdb43165274549e93edcc5680b56f2b4de4'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5731521b8fe9eeb01d64428ad71a01ad7e8e32cdfcf0fccb9ad957028fc1e90ce90b7ac1f6d9862b3028da06ac6174c857a4cab76601d21ad0865ffb0f4e3e05
|
7
|
+
data.tar.gz: 6095dfb363e7d84b48794ea1aaeab0edd28e7cb759fa4009ead8907818cce789190d14d3f318807eff3f92de03de4ac6c77b7fa0249ea08c43615d3826578a8e
|
data/Gemfile.lock
CHANGED
data/bin/big
CHANGED
@@ -1,136 +1,45 @@
|
|
1
1
|
require 'big_keeper/dependency/dep_operator'
|
2
|
-
require 'big_keeper/util/
|
2
|
+
require 'big_keeper/util/gradle_module_operator'
|
3
|
+
require 'big_keeper/util/gradle_file_operator'
|
3
4
|
require 'big_keeper/model/operate_type'
|
4
5
|
|
5
6
|
module BigKeeper
|
6
7
|
# Operator for podfile
|
7
8
|
class DepGradleOperator < DepOperator
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
GLOBAL_MODULE_BUILD = "module/global.gradle"
|
10
|
+
BUILD_GRADLE = "app/build.gradle"
|
11
|
+
SETTINGS_GRADLE = "settings.gradle"
|
12
12
|
|
13
13
|
def backup
|
14
|
-
GradleOperator.new(@path).backup
|
15
14
|
end
|
16
15
|
|
17
16
|
def recover
|
18
|
-
|
19
|
-
|
17
|
+
build_file = "#{@path}/#{BUILD_GRADLE}"
|
18
|
+
settings_file = "#{@path}/#{SETTINGS_GRADLE}"
|
19
|
+
GradleFileOperator.new(@path, @user).recover_bigkeeper_config_file(build_file)
|
20
|
+
GradleFileOperator.new(@path, @user).recover_bigkeeper_config_file(settings_file)
|
20
21
|
|
21
|
-
|
22
|
-
|
22
|
+
cache_operator = CacheOperator.new(@path)
|
23
|
+
cache_operator.clean
|
23
24
|
end
|
24
25
|
|
25
26
|
def update_module_config(module_name, module_operate_type)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
begin
|
35
|
-
File.open("#{@path}/#{PATH_VERSION_CONFIG}", 'r') do |file|
|
36
|
-
file.each_line do |line|
|
37
|
-
new_line = generate_version_config_of_line(
|
38
|
-
line,
|
39
|
-
module_name,
|
40
|
-
module_operate_type)
|
41
|
-
temp_file.puts(new_line)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
temp_file.close
|
45
|
-
FileUtils.mv(temp_file.path, "#{@path}/#{PATH_VERSION_CONFIG}")
|
46
|
-
ensure
|
47
|
-
temp_file.close
|
48
|
-
temp_file.unlink
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def update_local_depend(module_name, module_operate_type)
|
53
|
-
if !File.exist?("#{@path}/#{LOCAL_MODULE_BUILD}")
|
54
|
-
FileUtils.cp("#{@path}/#{GLOBAL_MODULE_BUILD}", "#{@path}/#{LOCAL_MODULE_BUILD}")
|
55
|
-
end
|
56
|
-
temp_file = Tempfile.new('.module.gradle.tmp')
|
57
|
-
begin
|
58
|
-
File.open("#{@path}/#{LOCAL_MODULE_BUILD}", 'r') do |file|
|
59
|
-
file.each_line do |line|
|
60
|
-
new_line = generate_local_depend_of_line(
|
61
|
-
line,
|
62
|
-
module_name,
|
63
|
-
module_operate_type)
|
64
|
-
temp_file.puts(new_line)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
temp_file.close
|
68
|
-
FileUtils.mv(temp_file.path, "#{@path}/#{LOCAL_MODULE_BUILD}")
|
69
|
-
ensure
|
70
|
-
temp_file.close
|
71
|
-
temp_file.unlink
|
27
|
+
if ModuleOperateType::ADD == module_operate_type
|
28
|
+
GradleModuleOperator.new(@path, @user, module_name).update_module(ModuleOperateType::ADD)
|
29
|
+
elsif ModuleOperateType::DELETE == module_operate_type
|
30
|
+
GradleModuleOperator.new(@path, @user, module_name).recover()
|
31
|
+
elsif ModuleOperateType::FINISH == module_operate_type
|
32
|
+
GradleModuleOperator.new(@path, @user, module_name).update_module(ModuleOperateType::FINISH)
|
33
|
+
elsif ModuleOperateType::PUBLISH == module_operate_type
|
34
|
+
GradleModuleOperator.new(@path, @user, module_name).recover()
|
72
35
|
end
|
73
36
|
end
|
74
37
|
|
75
|
-
def generate_version_config_of_line(line, module_name, module_operate_type)
|
76
|
-
if line.downcase.match(/([\s\S]*)#{module_name.downcase.gsub('-','')}version(\s*)=(\s*)('|")(\S*)('|")([\s\S]*)/)
|
77
|
-
branch_name = GitOperator.new.current_branch(@path)
|
78
|
-
version_name = ''
|
79
|
-
# Get version part of source.addition
|
80
|
-
|
81
|
-
if ModuleOperateType::ADD == module_operate_type
|
82
|
-
version_name = branch_name.sub(/([\s\S]*)\/([\s\S]*)/){ $2 }+'-SNAPSHOT'
|
83
|
-
elsif ModuleOperateType::FINISH == module_operate_type
|
84
|
-
version_name = branch_name.sub(/([\s\S]*)\/([\s\S]*)/){ $2 }
|
85
|
-
elsif ModuleOperateType::DELETE == module_operate_type
|
86
|
-
return origin_config_of_module(module_name)
|
87
|
-
else
|
88
|
-
version_name = branch_name.sub(/([\s\S]*)\/(\d+.\d+.\d+)_([\s\S]*)/){ $2 }
|
89
|
-
end
|
90
|
-
return line.sub(/([\s\S]*)Version(\s*)=(\s*)('|")(\S*)('|")([\s\S]*)/){
|
91
|
-
"#{$1}Version = '#{version_name}'"}
|
92
|
-
end
|
93
|
-
line
|
94
|
-
end
|
95
|
-
|
96
|
-
def generate_local_depend_of_line(line, module_name, module_operate_type)
|
97
|
-
if line.downcase.match(/([\s\S]*):module:#{module_name.downcase.gsub('-','')}([\s\S]*)/)
|
98
|
-
if ModuleOperateType::ADD == module_operate_type
|
99
|
-
line = line.gsub('//','')
|
100
|
-
else
|
101
|
-
line = line.gsub('//','')
|
102
|
-
line = '//' + line
|
103
|
-
end
|
104
|
-
end
|
105
|
-
line
|
106
|
-
end
|
107
|
-
|
108
|
-
def origin_config_of_module(module_name)
|
109
|
-
origin_config = ''
|
110
|
-
File.open("#{@path}/.bigkeeper/#{PATH_VERSION_CONFIG}", 'r') do |file|
|
111
|
-
file.each_line do |line|
|
112
|
-
if line.downcase.match(/([\s\S]*)#{module_name.downcase.gsub('-','')}version(\s*)=(\s*)('|")(\S*)('|")([\s\S]*)/)
|
113
|
-
origin_config = line
|
114
|
-
break
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
origin_config.chop
|
119
|
-
end
|
120
|
-
|
121
38
|
def install(modules, type, should_update)
|
122
|
-
if OperateType::SWITCH == type
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
all_modules.each do |module_name|
|
127
|
-
update_local_depend(module_name, ModuleOperateType::DELETE)
|
128
|
-
end
|
129
|
-
|
130
|
-
#open modules
|
131
|
-
modules.each do |module_name|
|
132
|
-
update_local_depend(module_name, ModuleOperateType::ADD)
|
133
|
-
end
|
39
|
+
if OperateType::START == type || OperateType::UPDATE == type || OperateType::SWITCH == type || OperateType::FINISH == type
|
40
|
+
GradleFileOperator.new(@path, @user).update_home_depends("#{@path}/#{BUILD_GRADLE}", "#{@path}/#{SETTINGS_GRADLE}",type)
|
41
|
+
elsif OperateType::PUBLISH == type
|
42
|
+
recover()
|
134
43
|
end
|
135
44
|
end
|
136
45
|
|
@@ -219,6 +219,18 @@ module BigKeeper
|
|
219
219
|
@@config[:modules][module_name][:git]
|
220
220
|
end
|
221
221
|
|
222
|
+
def self.module_source(module_name)
|
223
|
+
@@config[:modules][module_name][:mod_path]
|
224
|
+
end
|
225
|
+
|
226
|
+
def self.module_maven(module_name)
|
227
|
+
@@config[:modules][module_name][:maven_group] + ':' + @@config[:modules][module_name][:maven_artifact]
|
228
|
+
end
|
229
|
+
|
230
|
+
def self.module_maven_artifact(module_name)
|
231
|
+
@@config[:modules][module_name][:maven_artifact]
|
232
|
+
end
|
233
|
+
|
222
234
|
def self.module_pulls(module_name)
|
223
235
|
@@config[:modules][module_name][:pulls]
|
224
236
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module BigKeeper
|
2
|
+
class GradleConentGenerator
|
3
|
+
def self.generate_bigkeeper_settings_gradle_content()
|
4
|
+
"
|
5
|
+
//bigkeeper config start
|
6
|
+
Properties properties = new Properties()
|
7
|
+
properties.load(new File('local.properties').newDataInputStream())
|
8
|
+
if (\'true\' == properties.getProperty(\'ENABLE_BIGKEEPER_LOCAL\')) {
|
9
|
+
\tapply from: \'./.bigkeeper/bigkeeper_settings.gradle\'
|
10
|
+
}
|
11
|
+
//bigkeeper config end"
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.generate_bigkeeper_build_gradle_content()
|
15
|
+
"
|
16
|
+
//bigkeeper config start
|
17
|
+
Properties properties = new Properties()
|
18
|
+
properties.load(project.rootProject.file('local.properties').newDataInputStream())
|
19
|
+
if (\'true\' != properties.getProperty(\'ENABLE_BIGKEEPER_LOCAL\')) {
|
20
|
+
\tapply from: \'../.bigkeeper/bigkeeper_build.gradle\'
|
21
|
+
}
|
22
|
+
//bigkeeper config end
|
23
|
+
"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,338 @@
|
|
1
|
+
require 'big_keeper/util/logger'
|
2
|
+
require 'big_keeper/util/gradle_content_generator'
|
3
|
+
|
4
|
+
module BigKeeper
|
5
|
+
class GradleFileOperator
|
6
|
+
@path
|
7
|
+
@user
|
8
|
+
def initialize(path, user)
|
9
|
+
@path = path
|
10
|
+
@user = user
|
11
|
+
end
|
12
|
+
|
13
|
+
def get_module_depends(build_file, module_name)
|
14
|
+
Logger.highlight("get module #{module_name} depends ...")
|
15
|
+
depend_modules = []
|
16
|
+
modules = ModuleCacheOperator.new(@path).all_path_modules
|
17
|
+
File.open(build_file, 'r') do |file|
|
18
|
+
file.each_line do |line|
|
19
|
+
modules.each do |name|
|
20
|
+
if line.strip().index('//') != 0 && !line.include?(BigkeeperParser.module_maven(module_name)) && !depend_modules.include?(name) && line.include?(BigkeeperParser.module_maven(name))
|
21
|
+
depend_modules << name
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
print "module #{module_name} depends: "
|
27
|
+
p depend_modules
|
28
|
+
depend_modules
|
29
|
+
end
|
30
|
+
|
31
|
+
def update_module_settings(module_name, settings_file, depend_modules)
|
32
|
+
module_full_path = BigkeeperParser.module_full_path(@path, @user, module_name)
|
33
|
+
cache_path = File.expand_path("#{module_full_path}/.bigkeeper")
|
34
|
+
big_settings_file = "#{cache_path}/bigkeeper_settings.gradle"
|
35
|
+
|
36
|
+
if depend_modules.empty? && !File.exist?(big_settings_file)
|
37
|
+
return
|
38
|
+
end
|
39
|
+
|
40
|
+
result = ''
|
41
|
+
depend_modules.each do |name|
|
42
|
+
artifact_id = BigkeeperParser.module_maven_artifact(name)
|
43
|
+
source = BigkeeperParser.module_source(name)
|
44
|
+
result << "include \':module:#{artifact_id}\'\nproject(':module:#{artifact_id}').projectDir = new File(rootProject.projectDir, '../#{name}/#{source}')\n"
|
45
|
+
end
|
46
|
+
|
47
|
+
dest_path = File.dirname(big_settings_file)
|
48
|
+
FileUtils.mkdir_p(dest_path) unless File.exist?(dest_path)
|
49
|
+
file = File.new(big_settings_file, 'w')
|
50
|
+
begin
|
51
|
+
file << result
|
52
|
+
file.close
|
53
|
+
ensure
|
54
|
+
file.close
|
55
|
+
end
|
56
|
+
|
57
|
+
if has_bigkeeper_config(settings_file)
|
58
|
+
return
|
59
|
+
end
|
60
|
+
|
61
|
+
temp_file = Tempfile.new('.settings.gradle.tmp')
|
62
|
+
begin
|
63
|
+
File.open(settings_file, 'r') do |file|
|
64
|
+
file.each_line do |line|
|
65
|
+
temp_file.puts(line)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
temp_file.puts(GradleConentGenerator.generate_bigkeeper_settings_gradle_content())
|
69
|
+
temp_file.close
|
70
|
+
FileUtils.mv(temp_file.path, settings_file)
|
71
|
+
ensure
|
72
|
+
temp_file.close
|
73
|
+
temp_file.unlink
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def update_module_build(build_file, module_name, depend_modules, version_name)
|
78
|
+
module_full_path = BigkeeperParser.module_full_path(@path, @user, module_name)
|
79
|
+
cache_path = File.expand_path("#{module_full_path}/.bigkeeper")
|
80
|
+
big_build_file = "#{cache_path}/bigkeeper_build.gradle"
|
81
|
+
|
82
|
+
if depend_modules.empty? && !File.exist?(big_build_file)
|
83
|
+
return
|
84
|
+
end
|
85
|
+
|
86
|
+
result = "configurations.all {\n\tresolutionStrategy {\n"
|
87
|
+
depend_modules.each do |name|
|
88
|
+
module_maven = BigkeeperParser.module_maven(name)
|
89
|
+
result << "\t\tforce \'#{module_maven}:#{version_name}-SNAPSHOT\'\n"
|
90
|
+
end
|
91
|
+
result << "\t}\n}\n"
|
92
|
+
|
93
|
+
dest_path = File.dirname(big_build_file)
|
94
|
+
FileUtils.mkdir_p(dest_path) unless File.exist?(dest_path)
|
95
|
+
file = File.new(big_build_file, 'w')
|
96
|
+
begin
|
97
|
+
file << result
|
98
|
+
file.close
|
99
|
+
ensure
|
100
|
+
file.close
|
101
|
+
end
|
102
|
+
|
103
|
+
if has_bigkeeper_config(build_file)
|
104
|
+
return
|
105
|
+
end
|
106
|
+
|
107
|
+
temp_file = Tempfile.new('.build.gradle.tmp')
|
108
|
+
begin
|
109
|
+
File.open(build_file, 'r') do |file|
|
110
|
+
file.each_line do |line|
|
111
|
+
temp_file.puts(line)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
temp_file.puts(GradleConentGenerator.generate_bigkeeper_build_gradle_content())
|
115
|
+
temp_file.close
|
116
|
+
FileUtils.mv(temp_file.path, build_file)
|
117
|
+
ensure
|
118
|
+
temp_file.close
|
119
|
+
temp_file.unlink
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
def get_home_depends()
|
124
|
+
path_modules = ModuleCacheOperator.new(@path).all_path_modules
|
125
|
+
git_modules = ModuleCacheOperator.new(@path).all_git_modules
|
126
|
+
path_modules | git_modules
|
127
|
+
end
|
128
|
+
|
129
|
+
def update_home_settings(settings_file, depend_modules)
|
130
|
+
cache_path = File.expand_path("#{@path}/.bigkeeper")
|
131
|
+
big_settings_file = "#{cache_path}/bigkeeper_settings.gradle"
|
132
|
+
|
133
|
+
if depend_modules.empty? && !File.exist?(big_settings_file)
|
134
|
+
return
|
135
|
+
end
|
136
|
+
|
137
|
+
result = ''
|
138
|
+
depend_modules.each do |name|
|
139
|
+
artifact_id = BigkeeperParser.module_maven(name).split(':')[1]
|
140
|
+
path = BigkeeperParser.module_full_path(@path, @user, name)
|
141
|
+
source = BigkeeperParser.module_source(name)
|
142
|
+
result << "include \':module:#{artifact_id}\'\nproject(':module:#{artifact_id}').projectDir = new File(rootProject.projectDir, '../#{name}/#{source}')\n"
|
143
|
+
end
|
144
|
+
|
145
|
+
dest_path = File.dirname(big_settings_file)
|
146
|
+
FileUtils.mkdir_p(dest_path) unless File.exist?(dest_path)
|
147
|
+
file = File.new(big_settings_file, 'w')
|
148
|
+
begin
|
149
|
+
file << result
|
150
|
+
file.close
|
151
|
+
ensure
|
152
|
+
file.close
|
153
|
+
end
|
154
|
+
|
155
|
+
if has_bigkeeper_config(settings_file)
|
156
|
+
return
|
157
|
+
end
|
158
|
+
|
159
|
+
temp_file = Tempfile.new('.settings.gradle.tmp')
|
160
|
+
begin
|
161
|
+
File.open(settings_file, 'r') do |file|
|
162
|
+
file.each_line do |line|
|
163
|
+
temp_file.puts(line)
|
164
|
+
end
|
165
|
+
end
|
166
|
+
temp_file.puts(GradleConentGenerator.generate_bigkeeper_settings_gradle_content())
|
167
|
+
temp_file.close
|
168
|
+
FileUtils.mv(temp_file.path, settings_file)
|
169
|
+
ensure
|
170
|
+
temp_file.close
|
171
|
+
temp_file.unlink
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
def update_home_build(build_file, depend_modules, version_name)
|
176
|
+
cache_path = File.expand_path("#{@path}/.bigkeeper")
|
177
|
+
big_build_file = "#{cache_path}/bigkeeper_build.gradle"
|
178
|
+
|
179
|
+
if depend_modules.empty? && !File.exist?(big_build_file)
|
180
|
+
return
|
181
|
+
end
|
182
|
+
|
183
|
+
result = "configurations.all {\n\tresolutionStrategy {\n"
|
184
|
+
depend_modules.each do |module_name|
|
185
|
+
module_maven = BigkeeperParser.module_maven(module_name)
|
186
|
+
result << "\t\tforce \'#{module_maven}:#{version_name}-SNAPSHOT\'\n"
|
187
|
+
end
|
188
|
+
result << "\t}\n}\n"
|
189
|
+
|
190
|
+
dest_path = File.dirname(big_build_file)
|
191
|
+
FileUtils.mkdir_p(dest_path) unless File.exist?(dest_path)
|
192
|
+
file = File.new(big_build_file, 'w')
|
193
|
+
begin
|
194
|
+
file << result
|
195
|
+
file.close
|
196
|
+
ensure
|
197
|
+
file.close
|
198
|
+
end
|
199
|
+
|
200
|
+
if has_bigkeeper_config(build_file)
|
201
|
+
return
|
202
|
+
end
|
203
|
+
|
204
|
+
temp_file = Tempfile.new('.build.gradle.tmp')
|
205
|
+
begin
|
206
|
+
File.open(build_file, 'r') do |file|
|
207
|
+
file.each_line do |line|
|
208
|
+
temp_file.puts(line)
|
209
|
+
end
|
210
|
+
end
|
211
|
+
temp_file.puts(GradleConentGenerator.generate_bigkeeper_build_gradle_content())
|
212
|
+
temp_file.close
|
213
|
+
FileUtils.mv(temp_file.path, build_file)
|
214
|
+
ensure
|
215
|
+
temp_file.close
|
216
|
+
temp_file.unlink
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
def update_module_version_name(build_file, version_name)
|
221
|
+
temp_file = Tempfile.new('.build.gradle.tmp')
|
222
|
+
isModifyPom = false
|
223
|
+
isBigkeeperScript = false
|
224
|
+
isBigkeeperBackupScript = false
|
225
|
+
hasBigkeeperBackup = false
|
226
|
+
begin
|
227
|
+
File.open(build_file, 'r') do |file|
|
228
|
+
file.each_line do |line|
|
229
|
+
if line.include?('modifyPom')
|
230
|
+
isModifyPom = true
|
231
|
+
elsif line.include?('bigkeeper config start')
|
232
|
+
isBigkeeperScript = true
|
233
|
+
elsif line.include?('bigkeeper config end')
|
234
|
+
isBigkeeperScript = false
|
235
|
+
elsif line.include?('bigkeeper config backup start')
|
236
|
+
isBigkeeperBackupScript = true
|
237
|
+
hasBigkeeperBackup = true
|
238
|
+
elsif line.include?('bigkeeper config backup end')
|
239
|
+
isBigkeeperBackupScript = false
|
240
|
+
end
|
241
|
+
|
242
|
+
if isModifyPom && !isBigkeeperBackupScript && line.match(/[\s\S]*version[\s\S]*/)
|
243
|
+
if !hasBigkeeperBackup
|
244
|
+
temp_file.puts("\t\t//bigkeeper config backup start")
|
245
|
+
temp_file.puts("\t\t//"+line.strip)
|
246
|
+
temp_file.puts("\t\t//bigkeeper config backup end")
|
247
|
+
end
|
248
|
+
|
249
|
+
if isBigkeeperScript
|
250
|
+
temp_file.puts("\t\tversion \'#{version_name}\'")
|
251
|
+
else
|
252
|
+
temp_file.puts("\t\t//bigkeeper config start")
|
253
|
+
temp_file.puts("\t\tversion \'#{version_name}\'")
|
254
|
+
temp_file.puts("\t\t//bigkeeper config end")
|
255
|
+
end
|
256
|
+
isModifyPom = false
|
257
|
+
else
|
258
|
+
temp_file.puts(line)
|
259
|
+
end
|
260
|
+
end
|
261
|
+
end
|
262
|
+
temp_file.close
|
263
|
+
FileUtils.mv(temp_file.path, build_file)
|
264
|
+
ensure
|
265
|
+
temp_file.close
|
266
|
+
temp_file.unlink
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
def update_module_depends(build_file, settings_file, module_name, version_name)
|
271
|
+
depend_modules = get_module_depends(build_file, module_name)
|
272
|
+
update_module_settings(module_name, settings_file, depend_modules)
|
273
|
+
update_module_build(build_file, module_name, depend_modules, version_name)
|
274
|
+
end
|
275
|
+
|
276
|
+
def update_home_depends(build_file, settings_file, type)
|
277
|
+
depend_modules = get_home_depends()
|
278
|
+
update_home_settings(settings_file, depend_modules)
|
279
|
+
update_home_build(build_file, depend_modules, generate_version_name(type))
|
280
|
+
end
|
281
|
+
|
282
|
+
def generate_version_name(type)
|
283
|
+
branch_name = GitOperator.new.current_branch(@path)
|
284
|
+
version_name = ''
|
285
|
+
if OperateType::FINISH == type
|
286
|
+
version_name = branch_name.sub(/([\s\S]*)\/(\d+.\d+.\d+)_([\s\S]*)/){ $2 }
|
287
|
+
else
|
288
|
+
version_name = branch_name.sub(/([\s\S]*)\/([\s\S]*)/){ $2 }
|
289
|
+
end
|
290
|
+
version_name
|
291
|
+
end
|
292
|
+
|
293
|
+
def recover_bigkeeper_config_file(bigkeeper_config_file)
|
294
|
+
if !File.exist?(bigkeeper_config_file)
|
295
|
+
return
|
296
|
+
end
|
297
|
+
temp_file = Tempfile.new('.bigkeeper_config.tmp')
|
298
|
+
isBigkeeperScript = false
|
299
|
+
isBigkeeperBackupScript = false
|
300
|
+
begin
|
301
|
+
File.open(bigkeeper_config_file, 'r') do |file|
|
302
|
+
file.each_line do |line|
|
303
|
+
if line.include?('bigkeeper config start')
|
304
|
+
isBigkeeperScript = true
|
305
|
+
elsif line.include?('bigkeeper config end')
|
306
|
+
isBigkeeperScript = false
|
307
|
+
elsif line.include?('bigkeeper config backup start')
|
308
|
+
isBigkeeperBackupScript = true
|
309
|
+
elsif line.include?('bigkeeper config backup end')
|
310
|
+
isBigkeeperBackupScript = false
|
311
|
+
elsif isBigkeeperBackupScript
|
312
|
+
temp_file.puts(line.gsub('//',''))
|
313
|
+
elsif !isBigkeeperScript
|
314
|
+
temp_file.puts(line)
|
315
|
+
end
|
316
|
+
end
|
317
|
+
end
|
318
|
+
temp_file.close
|
319
|
+
FileUtils.mv(temp_file.path, bigkeeper_config_file)
|
320
|
+
ensure
|
321
|
+
temp_file.close
|
322
|
+
temp_file.unlink
|
323
|
+
end
|
324
|
+
end
|
325
|
+
|
326
|
+
def has_bigkeeper_config(file)
|
327
|
+
File.open(file, 'r') do |file|
|
328
|
+
file.each_line do |line|
|
329
|
+
if line.include?('bigkeeper config start')
|
330
|
+
return true
|
331
|
+
end
|
332
|
+
end
|
333
|
+
end
|
334
|
+
false
|
335
|
+
end
|
336
|
+
|
337
|
+
end
|
338
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'big_keeper/util/cache_operator'
|
2
|
+
require 'big_keeper/util/gradle_file_operator'
|
3
|
+
require 'big_keeper/util/bigkeeper_parser'
|
4
|
+
|
5
|
+
module BigKeeper
|
6
|
+
# Operator for podfile
|
7
|
+
class GradleModuleOperator
|
8
|
+
@path
|
9
|
+
@user
|
10
|
+
@module_name
|
11
|
+
|
12
|
+
BUILD_GRADLE = "build.gradle"
|
13
|
+
SETTINGS_GRADLE = "settings.gradle"
|
14
|
+
|
15
|
+
def initialize(path, user, module_name)
|
16
|
+
@path = path
|
17
|
+
@user = user
|
18
|
+
@module_name = module_name
|
19
|
+
end
|
20
|
+
|
21
|
+
def backup
|
22
|
+
end
|
23
|
+
|
24
|
+
## TODO
|
25
|
+
def recover()
|
26
|
+
module_full_path = BigkeeperParser.module_full_path(@path, @user, @module_name)
|
27
|
+
source = BigkeeperParser.module_source(@module_name)
|
28
|
+
build_file = "#{module_full_path}/#{source}/#{BUILD_GRADLE}"
|
29
|
+
settings_file = "#{module_full_path}/#{SETTINGS_GRADLE}"
|
30
|
+
GradleFileOperator.new(@path, @user).recover_bigkeeper_config_file(build_file)
|
31
|
+
GradleFileOperator.new(@path, @user).recover_bigkeeper_config_file(settings_file)
|
32
|
+
|
33
|
+
cache_operator = CacheOperator.new(module_full_path)
|
34
|
+
cache_operator.clean
|
35
|
+
end
|
36
|
+
|
37
|
+
def update_module(module_operate_type)
|
38
|
+
update_module_depends(module_operate_type)
|
39
|
+
update_module_version_name(module_operate_type)
|
40
|
+
end
|
41
|
+
|
42
|
+
def update_module_depends(module_operate_type)
|
43
|
+
module_full_path = BigkeeperParser.module_full_path(@path, @user, @module_name)
|
44
|
+
source = BigkeeperParser.module_source(@module_name)
|
45
|
+
version_name = generate_version_name(module_operate_type)
|
46
|
+
build_file = "#{module_full_path}/#{source}/#{BUILD_GRADLE}"
|
47
|
+
settings_file = "#{module_full_path}/#{SETTINGS_GRADLE}"
|
48
|
+
GradleFileOperator.new(@path, @user).update_module_depends(build_file, settings_file, @module_name, version_name)
|
49
|
+
end
|
50
|
+
|
51
|
+
def update_module_version_name(module_operate_type)
|
52
|
+
module_full_path = BigkeeperParser.module_full_path(@path, @user, @module_name)
|
53
|
+
source = BigkeeperParser.module_source(@module_name)
|
54
|
+
GradleFileOperator.new(@path, @user).update_module_version_name("#{module_full_path}/#{source}/#{BUILD_GRADLE}", generate_version_name(module_operate_type))
|
55
|
+
end
|
56
|
+
|
57
|
+
def generate_version_name(module_operate_type)
|
58
|
+
branch_name = GitOperator.new.current_branch(@path)
|
59
|
+
version_name = ''
|
60
|
+
if ModuleOperateType::ADD == module_operate_type
|
61
|
+
version_name = branch_name.sub(/([\s\S]*)\/([\s\S]*)/){ $2 }
|
62
|
+
elsif ModuleOperateType::FINISH == module_operate_type
|
63
|
+
version_name = branch_name.sub(/([\s\S]*)\/(\d+.\d+.\d+)_([\s\S]*)/){ $2 }
|
64
|
+
end
|
65
|
+
return version_name
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
data/lib/big_keeper/version.rb
CHANGED
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.9.
|
4
|
+
version: 0.9.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mmoaay
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gli
|
@@ -298,7 +298,9 @@ files:
|
|
298
298
|
- lib/big_keeper/util/file_operator.rb
|
299
299
|
- lib/big_keeper/util/git_operator.rb
|
300
300
|
- lib/big_keeper/util/gitflow_operator.rb
|
301
|
-
- lib/big_keeper/util/
|
301
|
+
- lib/big_keeper/util/gradle_content_generator.rb
|
302
|
+
- lib/big_keeper/util/gradle_file_operator.rb
|
303
|
+
- lib/big_keeper/util/gradle_module_operator.rb
|
302
304
|
- lib/big_keeper/util/info_plist_operator.rb
|
303
305
|
- lib/big_keeper/util/leancloud_logger.rb
|
304
306
|
- lib/big_keeper/util/list_generator.rb
|
@@ -1,86 +0,0 @@
|
|
1
|
-
require 'big_keeper/util/cache_operator'
|
2
|
-
|
3
|
-
module BigKeeper
|
4
|
-
# Operator for podfile
|
5
|
-
class GradleOperator
|
6
|
-
|
7
|
-
PATH_VERSION_CONFIG = "doc/config/version-config.gradle"
|
8
|
-
|
9
|
-
def initialize(path)
|
10
|
-
@path = path
|
11
|
-
end
|
12
|
-
|
13
|
-
def backup
|
14
|
-
cache_operator = CacheOperator.new(@path)
|
15
|
-
cache_operator.save(PATH_VERSION_CONFIG)
|
16
|
-
end
|
17
|
-
|
18
|
-
def recover()
|
19
|
-
cache_operator = CacheOperator.new(@path)
|
20
|
-
# cache_operator.load(PATH_VERSION_CONFIG)
|
21
|
-
cache_operator.clean
|
22
|
-
end
|
23
|
-
|
24
|
-
def update_version_config(module_name, module_operate_type)
|
25
|
-
module_full_path = BigkeeperParser.module_full_path(@path, @user, module_name)
|
26
|
-
if module_operate_type == ModuleOperateType::ADD
|
27
|
-
GradleOperator.new(module_full_path).backup
|
28
|
-
end
|
29
|
-
|
30
|
-
temp_file = Tempfile.new('.version-config.gradle.tmp')
|
31
|
-
begin
|
32
|
-
File.open("#{@path}/#{PATH_VERSION_CONFIG}", 'r') do |file|
|
33
|
-
file.each_line do |line|
|
34
|
-
new_line = generate_version_config_of_line(
|
35
|
-
line,
|
36
|
-
module_name,
|
37
|
-
module_operate_type)
|
38
|
-
temp_file.puts(new_line)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
temp_file.close
|
42
|
-
FileUtils.mv(temp_file.path, "#{@path}/#{PATH_VERSION_CONFIG}")
|
43
|
-
ensure
|
44
|
-
temp_file.close
|
45
|
-
temp_file.unlink
|
46
|
-
end
|
47
|
-
|
48
|
-
if module_operate_type == ModuleOperateType::PUBLISH
|
49
|
-
GradleOperator.new(module_full_path).recover
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def generate_version_config_of_line(line, module_name, module_operate_type)
|
54
|
-
if line.downcase.match(/([\s\S]*)#{module_name.downcase.gsub('-','')}version(\s*)=(\s*)('|")(\S*)('|")([\s\S]*)/)
|
55
|
-
branch_name = GitOperator.new.current_branch(@path)
|
56
|
-
version_name = ''
|
57
|
-
|
58
|
-
if ModuleOperateType::DELETE == module_operate_type
|
59
|
-
return origin_config_of_module(module_name)
|
60
|
-
elsif ModuleOperateType::PUBLISH == module_operate_type
|
61
|
-
version_name = branch_name.sub(/([\s\S]*)\/(\d+.\d+.\d+)_([\s\S]*)/){ $2 }
|
62
|
-
else
|
63
|
-
version_name = branch_name.sub(/([\s\S]*)\/([\s\S]*)/){ $2 }
|
64
|
-
end
|
65
|
-
return line.sub(/([\s\S]*)Version(\s*)=(\s*)('|")(\S*)('|")([\s\S]*)/){
|
66
|
-
"#{$1}Version = '#{version_name}'"}
|
67
|
-
end
|
68
|
-
line
|
69
|
-
end
|
70
|
-
|
71
|
-
def origin_config_of_module(module_name)
|
72
|
-
origin_config = ''
|
73
|
-
File.open("#{@path}/.bigkeeper/#{PATH_VERSION_CONFIG}", 'r') do |file|
|
74
|
-
file.each_line do |line|
|
75
|
-
if line.downcase.match(/([\s\S]*)#{module_name.downcase.gsub('-','')}version(\s*)=(\s*)('|")(\S*)('|")([\s\S]*)/)
|
76
|
-
origin_config = line
|
77
|
-
break
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
origin_config.chop
|
82
|
-
end
|
83
|
-
|
84
|
-
private :generate_version_config_of_line, :origin_config_of_module
|
85
|
-
end
|
86
|
-
end
|