rbbt-util 5.32.6 → 5.32.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/lib/rbbt/resource.rb +4 -1
- data/lib/rbbt/util/cmd.rb +14 -4
- data/lib/rbbt/util/migrate.rb +118 -0
- data/lib/rbbt/workflow/util/archive.rb +31 -102
- data/share/rbbt_commands/migrate +3 -76
- data/test/rbbt/util/test_migrate.rb +36 -0
- data/test/rbbt/workflow/util/test_archive.rb +31 -0
- metadata +6 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b989d145b1a34baab93f351ea9944e73dde157e9973a9443717b84a43e7b41d5
|
4
|
+
data.tar.gz: d6e8f5a7e8cb2d2f0e9a99f36a7594e4fc3655dd1d4f9b571f73f0f947b19fd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da60531d5e35efd54b0c4de7e9ad6b034ef05e8d58d6a6b0a1b15422b324dd6eb5a4cb01b21ba60c091616d512106c278ef794088f87f844bd96e86d8f61d7da
|
7
|
+
data.tar.gz: 2327575017d9dbb301b8c0ba36ee691bc8be00175712e2121da019251c3735d0348cae6d18e8112b00c952e233eb806a19f2275563310360ed745a9b868a6021
|
data/lib/rbbt/resource.rb
CHANGED
@@ -313,7 +313,10 @@ url='#{url}'
|
|
313
313
|
def identify(path)
|
314
314
|
path = File.expand_path(path)
|
315
315
|
resource ||= Rbbt
|
316
|
-
(Path::STANDARD_SEARCH + resource.search_order + resource.search_paths.keys)
|
316
|
+
locations = (Path::STANDARD_SEARCH + resource.search_order + resource.search_paths.keys)
|
317
|
+
locations -= [:current, "current"]
|
318
|
+
locations << :current
|
319
|
+
locations.uniq.each do |name|
|
317
320
|
pattern = resource.search_paths[name]
|
318
321
|
next if pattern.nil?
|
319
322
|
pattern = pattern.sub('{PWD}', Dir.pwd)
|
data/lib/rbbt/util/cmd.rb
CHANGED
@@ -248,16 +248,26 @@ module CMD
|
|
248
248
|
pid = io.pids.first
|
249
249
|
|
250
250
|
line = "" if bar
|
251
|
+
starting = true
|
251
252
|
while c = io.getc
|
252
|
-
|
253
|
-
line << c if bar
|
254
|
-
if c == "\n"
|
255
|
-
bar.process(line) if bar
|
253
|
+
if starting
|
256
254
|
if pid
|
257
255
|
Log.logn "STDOUT [#{pid}]: ", level
|
258
256
|
else
|
259
257
|
Log.logn "STDOUT: ", level
|
260
258
|
end
|
259
|
+
starting = false
|
260
|
+
end
|
261
|
+
STDERR << c if Log.severity <= level
|
262
|
+
line << c if bar
|
263
|
+
if c == "\n"
|
264
|
+
bar.process(line) if bar
|
265
|
+
starting = true
|
266
|
+
#if pid
|
267
|
+
# Log.logn "STDOUT [#{pid}]: ", level
|
268
|
+
#else
|
269
|
+
# Log.logn "STDOUT: ", level
|
270
|
+
#end
|
261
271
|
line = "" if bar
|
262
272
|
end
|
263
273
|
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
module Rbbt
|
2
|
+
def self.migrate_source_paths(path, resource = Rbbt, source = nil)
|
3
|
+
if source
|
4
|
+
lpath, *paths = Misc.ssh_run(source, <<-EOF).split("\n")
|
5
|
+
require 'rbbt-util'
|
6
|
+
path = "#{path}"
|
7
|
+
if Open.exists?(path)
|
8
|
+
path = #{resource.to_s}.identify(path)
|
9
|
+
else
|
10
|
+
path = Path.setup(path)
|
11
|
+
end
|
12
|
+
puts path
|
13
|
+
puts path.glob_all.collect{|p| File.directory?(p) ? p + "/" : p } * "\n"
|
14
|
+
EOF
|
15
|
+
|
16
|
+
[path, paths.collect{|p| [source, p] * ":"}, lpath]
|
17
|
+
else
|
18
|
+
if File.exists?(path)
|
19
|
+
path = resource.identify(path)
|
20
|
+
else
|
21
|
+
path = Path.setup(path)
|
22
|
+
end
|
23
|
+
|
24
|
+
[path, (path.directory? ? path.glob_all : path.find_all), path]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.migrate_target_path(path, search_path = 'user', resource = Rbbt, target = nil)
|
29
|
+
if target
|
30
|
+
Misc.ssh_run(target, <<-EOF).split("\n").first
|
31
|
+
require 'rbbt-util'
|
32
|
+
path = "#{path}"
|
33
|
+
resource = #{resource.to_s}
|
34
|
+
search_path = "#{search_path}"
|
35
|
+
puts resource[path].find(search_path)
|
36
|
+
EOF
|
37
|
+
else
|
38
|
+
resource[path].find(search_path)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.migrate_files(real_paths, target, options = {})
|
43
|
+
excludes = %w(.save .crap .source tmp filecache open-remote)
|
44
|
+
excludes += (options[:exclude] || "").split(/,\s*/)
|
45
|
+
excludes_str = excludes.collect{|s| "--exclude '#{s}'" } * " "
|
46
|
+
|
47
|
+
other = options[:other] || []
|
48
|
+
|
49
|
+
test_str = options[:test] ? '-nv' : ''
|
50
|
+
|
51
|
+
real_paths.each do |source_path|
|
52
|
+
if File.directory?(source_path) || source_path =~ /\/$/
|
53
|
+
source_path += "/" unless source_path[-1] == "/"
|
54
|
+
target += "/" unless target[-1] == "/"
|
55
|
+
end
|
56
|
+
|
57
|
+
next if source_path == target
|
58
|
+
|
59
|
+
if options[:target]
|
60
|
+
CMD.cmd("ssh #{options[:target]} mkdir -p '#{File.dirname(target)}'")
|
61
|
+
else
|
62
|
+
Open.mkdir File.dirname(target)
|
63
|
+
end
|
64
|
+
|
65
|
+
if options[:target]
|
66
|
+
target_path = [options[:target], "'" + target + "'"] * ":"
|
67
|
+
else
|
68
|
+
target_path = "'" + target + "'"
|
69
|
+
end
|
70
|
+
|
71
|
+
TmpFile.with_file do |tmp_files|
|
72
|
+
if options[:files]
|
73
|
+
Open.write(tmp_files, options[:files] * "\n")
|
74
|
+
files_from_str = "--files-from='#{tmp_files}'"
|
75
|
+
else
|
76
|
+
files_from_str = ""
|
77
|
+
end
|
78
|
+
|
79
|
+
cmd = "rsync -avztAXHP --copy-unsafe-links #{test_str} #{files_from_str} #{excludes_str} '#{source_path}' #{target_path} #{other * " "}"
|
80
|
+
|
81
|
+
|
82
|
+
cmd << " && rm -Rf #{source_path}" if options[:delete] && ! options[:files]
|
83
|
+
|
84
|
+
if options[:print]
|
85
|
+
puts cmd
|
86
|
+
exit 0
|
87
|
+
else
|
88
|
+
CMD.cmd_log(cmd, :log => Log::INFO)
|
89
|
+
|
90
|
+
if options[:delete] && options[:files]
|
91
|
+
remove_files = options[:files].collect{|f| File.join(source_path, f) }
|
92
|
+
dirs = remove_files.select{|f| File.directory? f }
|
93
|
+
remove_files.each do |file|
|
94
|
+
next if dirs.include? file
|
95
|
+
Open.rm file
|
96
|
+
end
|
97
|
+
dirs.each do |dir|
|
98
|
+
FileUtils.rmdir dir if Dir.glob(dir).empty?
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
def self.migrate(path, search_path, options = {})
|
108
|
+
search_path = 'user' if search_path.nil?
|
109
|
+
|
110
|
+
resource = Rbbt
|
111
|
+
|
112
|
+
path, real_paths, lpath = migrate_source_paths(path, resource, options[:source])
|
113
|
+
|
114
|
+
target = migrate_target_path(lpath, search_path, resource, options[:target])
|
115
|
+
|
116
|
+
migrate_files(real_paths, target, options)
|
117
|
+
end
|
118
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'rbbt/util/migrate'
|
1
2
|
class Step
|
2
3
|
|
3
4
|
MAIN_RSYNC_ARGS="-avztAXHP --copy-links"
|
@@ -126,63 +127,48 @@ class Step
|
|
126
127
|
end
|
127
128
|
end
|
128
129
|
|
129
|
-
def self.
|
130
|
-
resource=Rbbt
|
131
|
-
|
132
|
-
orig_path = path
|
133
|
-
other_rsync_args = options[:rsync]
|
134
|
-
|
135
|
-
recursive = options[:recursive]
|
130
|
+
def self.migrate_source_paths(path, resource = Rbbt, source = nil, recursive = true)
|
136
131
|
recursive = false if recursive.nil?
|
137
|
-
|
138
|
-
|
139
|
-
Misc.ssh_run(options[:source], <<-EOF).split("\n")
|
132
|
+
if source
|
133
|
+
lpath, *paths = Misc.ssh_run(source, <<-EOF).split("\n")
|
140
134
|
require 'rbbt-util'
|
141
135
|
require 'rbbt/workflow'
|
142
136
|
|
143
|
-
path = "#{path}"
|
144
137
|
recursive = #{ recursive.to_s }
|
138
|
+
path = "#{path}"
|
145
139
|
|
146
|
-
if
|
140
|
+
if Open.exists?(path)
|
147
141
|
path = #{resource.to_s}.identify(path)
|
148
142
|
else
|
149
143
|
path = Path.setup(path)
|
150
144
|
end
|
151
145
|
|
152
|
-
files = path.glob_all
|
153
|
-
|
146
|
+
files = path.glob_all.collect{|p| File.directory?(p) ? p + "/" : p }
|
154
147
|
files = Step.job_files_for_archive(files, recursive)
|
155
148
|
|
149
|
+
puts path
|
156
150
|
puts files * "\n"
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
path = "var/jobs"
|
176
|
-
resource = #{resource.to_s}
|
177
|
-
search_path = "#{search_path}"
|
178
|
-
puts resource[path].find(search_path)
|
179
|
-
EOF
|
180
|
-
else
|
181
|
-
resource['var/jobs'].find(search_path)
|
182
|
-
end
|
151
|
+
EOF
|
152
|
+
|
153
|
+
[path, paths.collect{|p| [source, p] * ":"}, lpath]
|
154
|
+
else
|
155
|
+
path = Path.setup(path.dup)
|
156
|
+
files = path.glob_all
|
157
|
+
files = Step.job_files_for_archive(files, recursive)
|
158
|
+
|
159
|
+
[path, files, path]
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
def self.migrate(path, search_path, options = {})
|
164
|
+
search_path = 'user' if search_path.nil?
|
165
|
+
|
166
|
+
resource = Rbbt
|
167
|
+
|
168
|
+
path, real_paths, lpath = self.migrate_source_paths(path, resource, options[:source], options[:recursive])
|
183
169
|
|
184
170
|
subpath_files = {}
|
185
|
-
|
171
|
+
real_paths.sort.each do |path|
|
186
172
|
parts = path.split("/")
|
187
173
|
subpath = parts[0..-4] * "/" + "/"
|
188
174
|
|
@@ -190,73 +176,16 @@ puts resource[path].find(search_path)
|
|
190
176
|
subpath = subpath_files.keys.last
|
191
177
|
end
|
192
178
|
|
193
|
-
source = path[subpath.length..-1]
|
179
|
+
source = path.chars[subpath.length..-1] * ""
|
194
180
|
|
195
181
|
subpath_files[subpath] ||= []
|
196
182
|
subpath_files[subpath] << source
|
197
183
|
end
|
198
184
|
|
199
|
-
|
200
|
-
subpath_files.each do |subpath, files|
|
201
|
-
if options[:target]
|
202
|
-
CMD.cmd("ssh #{options[:target]} mkdir -p '#{File.dirname(target)}'")
|
203
|
-
else
|
204
|
-
Open.mkdir File.dirname(target)
|
205
|
-
end
|
185
|
+
target = Rbbt.migrate_target_path('var/jobs', search_path, resource, options[:target])
|
206
186
|
|
207
|
-
|
208
|
-
|
209
|
-
else
|
210
|
-
source = subpath
|
211
|
-
end
|
212
|
-
target = [options[:target], target] * ":" if options[:target]
|
213
|
-
|
214
|
-
next if File.exists?(source) && File.exists?(target) && File.expand_path(source) == File.expand_path(target)
|
215
|
-
|
216
|
-
files_and_dirs = Set.new( files )
|
217
|
-
files.each do |file|
|
218
|
-
synced_files << File.join(subpath, file)
|
219
|
-
|
220
|
-
parts = file.split("/")[0..-2].reject{|p| p.empty?}
|
221
|
-
while parts.any?
|
222
|
-
files_and_dirs << parts * "/"
|
223
|
-
parts.pop
|
224
|
-
end
|
225
|
-
end
|
226
|
-
|
227
|
-
TmpFile.with_file(files_and_dirs.sort_by{|l| l.length}.to_a * "\n") do |tmp_include_file|
|
228
|
-
test_str = options[:test] ? '-nv' : ''
|
229
|
-
|
230
|
-
cmd = "rsync #{MAIN_RSYNC_ARGS} --progress #{test_str} --files-from='#{tmp_include_file}' #{source}/ #{target}/ #{other_rsync_args}"
|
231
|
-
|
232
|
-
#cmd << " && rm -Rf #{source}" if options[:delete]
|
233
|
-
if options[:print]
|
234
|
-
ppp Open.read(tmp_include_file)
|
235
|
-
puts cmd
|
236
|
-
else
|
237
|
-
CMD.cmd_log(cmd, :log => Log::INFO)
|
238
|
-
end
|
239
|
-
end
|
240
|
-
end
|
241
|
-
|
242
|
-
if options[:delete] && synced_files.any?
|
243
|
-
puts Log.color :magenta, "About to erase these files:"
|
244
|
-
synced_files.each do |p|
|
245
|
-
puts Log.color :red, p
|
246
|
-
end
|
247
|
-
|
248
|
-
if options[:non_interactive]
|
249
|
-
response = 'yes'
|
250
|
-
else
|
251
|
-
puts Log.color :magenta, "Type 'yes' if you are sure:"
|
252
|
-
response = STDIN.gets.chomp
|
253
|
-
end
|
254
|
-
|
255
|
-
if response == 'yes'
|
256
|
-
synced_files.each do |p|
|
257
|
-
Open.rm p
|
258
|
-
end
|
259
|
-
end
|
187
|
+
subpath_files.each do |subpath, files|
|
188
|
+
Rbbt.migrate_files([subpath], target, options.merge(:files => files))
|
260
189
|
end
|
261
190
|
end
|
262
191
|
|
data/share/rbbt_commands/migrate
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'rbbt-util'
|
4
4
|
require 'rbbt/util/simpleopt'
|
5
|
-
require 'rbbt/
|
5
|
+
require 'rbbt/util/migrate'
|
6
6
|
|
7
7
|
$0 = "rbbt #{$previous_commands*""} #{ File.basename(__FILE__) }" if $previous_commands
|
8
8
|
|
@@ -30,83 +30,10 @@ if options[:help]
|
|
30
30
|
exit 0
|
31
31
|
end
|
32
32
|
|
33
|
-
#excludes = %w(.save .crap .source tmp filecache open-remote workflows apps software jobs PCAWG)
|
34
|
-
excludes = %w(.save .crap .source tmp filecache open-remote)
|
35
|
-
excludes += (options[:exclude] || "").split(/,\s*/)
|
36
|
-
excludes_str = excludes.collect{|s| "--exclude '#{s}'" } * " "
|
37
|
-
|
38
|
-
test_str = options[:test] ? '-nv' : ''
|
39
|
-
|
40
33
|
path, search_path, _sep, *other = ARGV
|
41
34
|
|
42
35
|
search_path = 'user' if search_path.nil?
|
43
|
-
resource = Rbbt
|
44
|
-
|
45
|
-
path, real_paths, lpath = if options[:source]
|
46
|
-
lpath, *paths = Misc.ssh_run(options[:source], <<-EOF).split("\n")
|
47
|
-
require 'rbbt-util'
|
48
|
-
path = "#{path}"
|
49
|
-
if Open.exists?(path)
|
50
|
-
path = #{resource.to_s}.identify(path)
|
51
|
-
else
|
52
|
-
path = Path.setup(path)
|
53
|
-
end
|
54
|
-
puts path
|
55
|
-
puts path.glob_all.collect{|p| File.directory?(p) ? p + "/" : p } * "\n"
|
56
|
-
EOF
|
57
|
-
[path, paths.collect{|p| [options[:source], p] * ":"}, lpath]
|
58
|
-
else
|
59
|
-
if File.exists?(path)
|
60
|
-
|
61
|
-
path = resource.identify(path)
|
62
|
-
else
|
63
|
-
path = Path.setup(path)
|
64
|
-
end
|
65
|
-
[path, path.glob_all, path]
|
66
|
-
end
|
67
|
-
|
68
|
-
target = if options[:target]
|
69
|
-
target = Misc.ssh_run(options[:target], <<-EOF).split("\n").first
|
70
|
-
require 'rbbt-util'
|
71
|
-
path = "#{path}"
|
72
|
-
resource = #{resource.to_s}
|
73
|
-
search_path = "#{search_path}"
|
74
|
-
puts resource[path].find(search_path)
|
75
|
-
EOF
|
76
|
-
else
|
77
|
-
resource[lpath].find(search_path)
|
78
|
-
end
|
79
|
-
|
80
|
-
real_paths.each do |source|
|
81
|
-
|
82
|
-
|
83
|
-
if File.directory?(source) || source =~ /\/$/
|
84
|
-
source += "/" unless source[-1] == "/"
|
85
|
-
target += "/" unless target[-1] == "/"
|
86
|
-
end
|
87
36
|
|
88
|
-
|
37
|
+
options[:other] = other
|
89
38
|
|
90
|
-
|
91
|
-
CMD.cmd("ssh #{options[:target]} mkdir -p '#{File.dirname(target)}'")
|
92
|
-
else
|
93
|
-
Open.mkdir File.dirname(target)
|
94
|
-
end
|
95
|
-
|
96
|
-
if options[:target]
|
97
|
-
target_path = [options[:target], "'" + target + "'"] * ":"
|
98
|
-
else
|
99
|
-
target_path = "'" + target + "'"
|
100
|
-
end
|
101
|
-
|
102
|
-
cmd = "rsync -avztAXHP --copy-unsafe-links #{test_str} #{excludes_str} '#{source}' #{target_path} #{other * " "}"
|
103
|
-
|
104
|
-
cmd << " && rm -Rf #{source}" if options[:delete]
|
105
|
-
|
106
|
-
if options[:print]
|
107
|
-
puts cmd
|
108
|
-
exit 0
|
109
|
-
else
|
110
|
-
CMD.cmd_log(cmd, :log => Log::INFO)
|
111
|
-
end
|
112
|
-
end
|
39
|
+
Rbbt.migrate(path, search_path, options)
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'test_helper.rb')
|
2
|
+
require 'rbbt-util'
|
3
|
+
require 'rbbt/util/migrate'
|
4
|
+
|
5
|
+
class TestMigrate < Test::Unit::TestCase
|
6
|
+
def _test_source_locate
|
7
|
+
assert_equal 'var/jobs/', Rbbt.migrate_source_paths(Rbbt.root['var/jobs'].find(:user)).last
|
8
|
+
assert Rbbt.migrate_source_paths(Rbbt.root['var/jobs'].find(:user))[1].include?(File.join(ENV["HOME"], '.rbbt/var/jobs/'))
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_migrate
|
12
|
+
Open.rm_rf Rbbt.tmp.test.migration_test.find(:user)
|
13
|
+
test_file = Rbbt.tmp.test.migration_test.migration_test_file.find(:user)
|
14
|
+
Open.write(test_file, "TEST")
|
15
|
+
TmpFile.with_file do |tmpdir|
|
16
|
+
Misc.in_dir tmpdir do
|
17
|
+
Log.with_severity 0 do
|
18
|
+
Rbbt.migrate('tmp/test/migration_test/migration_test_file', :current)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
assert_equal "TEST", Open.read(File.join(tmpdir, 'tmp/test/migration_test/migration_test_file'))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def __test_migrate_turbo
|
26
|
+
Log.with_severity 0 do
|
27
|
+
TmpFile.with_file do |tmpdir|
|
28
|
+
Misc.in_dir tmpdir do
|
29
|
+
Rbbt.migrate('etc/config', :current, :source => 'mn1')
|
30
|
+
end
|
31
|
+
assert_equal "TEST", Open.read(File.join(tmpdir, 'etc/config'))
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../../..', 'test_helper.rb')
|
2
|
+
require 'rbbt-util'
|
3
|
+
require 'rbbt/workflow'
|
4
|
+
require 'rbbt/workflow/util/archive'
|
5
|
+
|
6
|
+
module ArchiveTestWF
|
7
|
+
extend Workflow
|
8
|
+
task :test_archive => :string do
|
9
|
+
Open.write(file(:file1), "Test file")
|
10
|
+
"TEST"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class TestClass < Test::Unit::TestCase
|
15
|
+
def test_migrate
|
16
|
+
job = ArchiveTestWF.job(:test_archive)
|
17
|
+
job.run
|
18
|
+
|
19
|
+
Log.with_severity 0 do
|
20
|
+
TmpFile.with_file do |tmpdir|
|
21
|
+
Misc.in_dir tmpdir do
|
22
|
+
Step.migrate(job.path, :current, :delete => false, :print => false)
|
23
|
+
end
|
24
|
+
assert_equal "TEST", Open.read(File.join(tmpdir, 'var/jobs/ArchiveTestWF/test_archive/Default'))
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-util
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.32.
|
4
|
+
version: 5.32.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
@@ -282,6 +282,7 @@ files:
|
|
282
282
|
- lib/rbbt/util/log/progress.rb
|
283
283
|
- lib/rbbt/util/log/progress/report.rb
|
284
284
|
- lib/rbbt/util/log/progress/util.rb
|
285
|
+
- lib/rbbt/util/migrate.rb
|
285
286
|
- lib/rbbt/util/misc.rb
|
286
287
|
- lib/rbbt/util/misc/annotated_module.rb
|
287
288
|
- lib/rbbt/util/misc/bgzf.rb
|
@@ -522,6 +523,7 @@ files:
|
|
522
523
|
- test/rbbt/util/test_excel2tsv.rb
|
523
524
|
- test/rbbt/util/test_filecache.rb
|
524
525
|
- test/rbbt/util/test_log.rb
|
526
|
+
- test/rbbt/util/test_migrate.rb
|
525
527
|
- test/rbbt/util/test_misc.rb
|
526
528
|
- test/rbbt/util/test_open.rb
|
527
529
|
- test/rbbt/util/test_procpath.rb
|
@@ -536,6 +538,7 @@ files:
|
|
536
538
|
- test/rbbt/workflow/test_schedule.rb
|
537
539
|
- test/rbbt/workflow/test_step.rb
|
538
540
|
- test/rbbt/workflow/test_task.rb
|
541
|
+
- test/rbbt/workflow/util/test_archive.rb
|
539
542
|
- test/rbbt/workflow/util/test_orchestrator.rb
|
540
543
|
- test/test_helper.rb
|
541
544
|
homepage: http://github.com/mikisvaz/rbbt-util
|
@@ -583,12 +586,14 @@ test_files:
|
|
583
586
|
- test/rbbt/workflow/test_doc.rb
|
584
587
|
- test/rbbt/workflow/step/test_dependencies.rb
|
585
588
|
- test/rbbt/workflow/test_schedule.rb
|
589
|
+
- test/rbbt/workflow/util/test_archive.rb
|
586
590
|
- test/rbbt/workflow/util/test_orchestrator.rb
|
587
591
|
- test/rbbt/workflow/test_task.rb
|
588
592
|
- test/rbbt/workflow/test_step.rb
|
589
593
|
- test/rbbt/test_tsv.rb
|
590
594
|
- test/rbbt/test_annotations.rb
|
591
595
|
- test/rbbt/test_knowledge_base.rb
|
596
|
+
- test/rbbt/util/test_migrate.rb
|
592
597
|
- test/rbbt/util/test_simpleDSL.rb
|
593
598
|
- test/rbbt/util/concurrency/processes/test_socket.rb
|
594
599
|
- test/rbbt/util/concurrency/test_processes.rb
|