rbbt-util 5.27.4 → 5.27.5
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 +8 -5
- data/lib/rbbt/workflow/accessor.rb +3 -1
- data/lib/rbbt/workflow/util/archive.rb +30 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8792f1d19116c0384fd0063a5e81c8e9d9e30026e5dbaf41d5b26cf56210aa8
|
4
|
+
data.tar.gz: d3c1cf57d737a5255c6f31eb3ebe907c21d8449a0fae89d0208bb2935b513903
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5f84745610ef5f21c23f193b17b2b16f7b4a6a17218e4e5a0d3e23fb68896d9039a99e6d72bf13952b2e39fb5b96b9809ca8683efdb788084c7ef688bac1c13
|
7
|
+
data.tar.gz: 3f17849b28cfe2fd8618b72a74a9887172f90d93876ec59bbaae5d6fec4591537410958fcd5910805a6c995ebdef81e566d6056803090d8625efaccd0a3e2588
|
data/lib/rbbt/resource.rb
CHANGED
@@ -170,10 +170,12 @@ module Resource
|
|
170
170
|
if type and not File.exist?(final_path) or force
|
171
171
|
Log.medium "Producing: #{ final_path }"
|
172
172
|
lock_filename = Persist.persistence_path(final_path, {:dir => Resource.lock_dir})
|
173
|
+
|
173
174
|
Misc.lock lock_filename do
|
174
175
|
FileUtils.rm_rf final_path if force and File.exist? final_path
|
175
|
-
|
176
|
-
|
176
|
+
|
177
|
+
if ! File.exist?(final_path) || force
|
178
|
+
|
177
179
|
begin
|
178
180
|
case type
|
179
181
|
when :string
|
@@ -291,7 +293,7 @@ url='#{url}'
|
|
291
293
|
rescue
|
292
294
|
FileUtils.rm_rf final_path if File.exist? final_path
|
293
295
|
raise $!
|
294
|
-
end
|
296
|
+
end unless (remote_server && get_from_server(path, final_path))
|
295
297
|
end
|
296
298
|
end
|
297
299
|
end
|
@@ -304,11 +306,12 @@ url='#{url}'
|
|
304
306
|
resource ||= Rbbt
|
305
307
|
(Path::STANDARD_SEARCH + resource.search_order + resource.search_paths.keys).uniq.each do |name|
|
306
308
|
pattern = resource.search_paths[name]
|
307
|
-
next if
|
309
|
+
next if pattern.nil?
|
310
|
+
pattern = pattern.sub('{PWD}', Dir.pwd)
|
308
311
|
if String === pattern and pattern.include?('{')
|
309
312
|
regexp = "^" + pattern.gsub(/{([^}]+)}/,'(?<\1>[^/]+)') + "(?:/(?<REST>.*))?/?$"
|
310
313
|
if m = path.match(regexp)
|
311
|
-
if m["PKGDIR"] == resource.pkgdir
|
314
|
+
if ! m.named_captures.include?("PKGDIR") || m["PKGDIR"] == resource.pkgdir
|
312
315
|
return self[m["TOPLEVEL"]][m["SUBPATH"]][m["REST"]]
|
313
316
|
end
|
314
317
|
end
|
@@ -35,6 +35,7 @@ module Workflow
|
|
35
35
|
input_use = rec_input_use(name)
|
36
36
|
input_defaults = rec_input_defaults(name)
|
37
37
|
input_options = rec_input_options(name)
|
38
|
+
extension = task.extension
|
38
39
|
export = case
|
39
40
|
when (synchronous_exports.include?(name.to_sym) or synchronous_exports.include?(name.to_s))
|
40
41
|
:synchronous
|
@@ -60,7 +61,8 @@ module Workflow
|
|
60
61
|
:input_use => input_use,
|
61
62
|
:result_type => result_type,
|
62
63
|
:result_description => result_description,
|
63
|
-
:dependencies => dependencies
|
64
|
+
:dependencies => dependencies,
|
65
|
+
:extension => extension
|
64
66
|
}
|
65
67
|
end
|
66
68
|
end
|
@@ -125,6 +125,7 @@ class Step
|
|
125
125
|
def self.migrate(path, search_path, options = {})
|
126
126
|
resource=Rbbt
|
127
127
|
|
128
|
+
orig_path = path
|
128
129
|
other_rsync_args = options[:rsync]
|
129
130
|
|
130
131
|
recursive = options[:recursive]
|
@@ -154,6 +155,7 @@ puts files * "\n"
|
|
154
155
|
else
|
155
156
|
if File.exists?(path)
|
156
157
|
path = resource.identify(path)
|
158
|
+
raise "Resource #{resource} could not identify #{orig_path}" if path.nil?
|
157
159
|
else
|
158
160
|
path = Path.setup(path)
|
159
161
|
end
|
@@ -178,7 +180,7 @@ puts resource[path].find(search_path)
|
|
178
180
|
subpath_files = {}
|
179
181
|
paths.sort.each do |path|
|
180
182
|
parts = path.split("/")
|
181
|
-
subpath = parts[0..-4] * "/"
|
183
|
+
subpath = parts[0..-4] * "/" + "/"
|
182
184
|
|
183
185
|
if subpath_files.keys.any? && subpath.start_with?(subpath_files.keys.last)
|
184
186
|
subpath = subpath_files.keys.last
|
@@ -190,6 +192,7 @@ puts resource[path].find(search_path)
|
|
190
192
|
subpath_files[subpath] << source
|
191
193
|
end
|
192
194
|
|
195
|
+
synced_files = []
|
193
196
|
subpath_files.each do |subpath, files|
|
194
197
|
if options[:target]
|
195
198
|
CMD.cmd("ssh #{options[:target]} mkdir -p '#{File.dirname(target)}'")
|
@@ -204,11 +207,15 @@ puts resource[path].find(search_path)
|
|
204
207
|
end
|
205
208
|
target = [options[:target], target] * ":" if options[:target]
|
206
209
|
|
210
|
+
next if File.exists?(source) && File.exists?(target) && File.expand_path(source) == File.expand_path(target)
|
211
|
+
|
207
212
|
files_and_dirs = Set.new( files )
|
208
213
|
files.each do |file|
|
214
|
+
synced_files << File.join(subpath, file)
|
215
|
+
|
209
216
|
parts = file.split("/")[0..-2].reject{|p| p.empty?}
|
210
217
|
while parts.any?
|
211
|
-
files_and_dirs <<
|
218
|
+
files_and_dirs << parts * "/"
|
212
219
|
parts.pop
|
213
220
|
end
|
214
221
|
end
|
@@ -218,8 +225,7 @@ puts resource[path].find(search_path)
|
|
218
225
|
|
219
226
|
cmd = "rsync #{MAIN_RSYNC_ARGS} --progress #{test_str} --files-from='#{tmp_include_file}' #{source}/ #{target}/ #{other_rsync_args}"
|
220
227
|
|
221
|
-
cmd << " && rm -Rf #{source}" if options[:delete]
|
222
|
-
|
228
|
+
#cmd << " && rm -Rf #{source}" if options[:delete]
|
223
229
|
if options[:print]
|
224
230
|
ppp Open.read(tmp_include_file)
|
225
231
|
puts cmd
|
@@ -228,6 +234,26 @@ puts resource[path].find(search_path)
|
|
228
234
|
end
|
229
235
|
end
|
230
236
|
end
|
237
|
+
|
238
|
+
if options[:delete] && synced_files.any?
|
239
|
+
puts Log.color :magenta, "About to erase these files:"
|
240
|
+
synced_files.each do |p|
|
241
|
+
puts Log.color :red, p
|
242
|
+
end
|
243
|
+
|
244
|
+
if options[:non_interactive]
|
245
|
+
response = 'yes'
|
246
|
+
else
|
247
|
+
puts Log.color :magenta, "Type 'yes' if you are sure:"
|
248
|
+
response = STDIN.gets.chomp
|
249
|
+
end
|
250
|
+
|
251
|
+
if response == 'yes'
|
252
|
+
synced_files.each do |p|
|
253
|
+
Open.rm p
|
254
|
+
end
|
255
|
+
end
|
256
|
+
end
|
231
257
|
end
|
232
258
|
|
233
259
|
def self.purge(path, recursive = false)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-util
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.27.
|
4
|
+
version: 5.27.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|