Support gzip compressed data files (to be used by new version of cli)
parent
31746d8e1c
commit
0beacb326e
@ -1,17 +0,0 @@
|
||||
class Bzip2Uploader < BaseUploader
|
||||
|
||||
def decompressed_path
|
||||
return unless file
|
||||
|
||||
cache_stored_file! unless cached?
|
||||
|
||||
out_path = "#{current_path}.decompressed"
|
||||
|
||||
unless File.exist?(out_path)
|
||||
system("bzip2 -d -k -c #{current_path} >#{out_path}")
|
||||
end
|
||||
|
||||
out_path
|
||||
end
|
||||
|
||||
end
|
@ -0,0 +1,32 @@
|
||||
class CompressedFileUploader < BaseUploader
|
||||
|
||||
def decompressed_path
|
||||
return unless file
|
||||
|
||||
cache_stored_file! unless cached?
|
||||
|
||||
out_path = "#{current_path}.decompressed"
|
||||
|
||||
unless File.exist?(out_path)
|
||||
decompress(out_path)
|
||||
end
|
||||
|
||||
out_path
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def decompress(out_path)
|
||||
header = File.read(current_path, 2).bytes
|
||||
|
||||
case header
|
||||
when [31, 139]
|
||||
system("gzip -d -k -c #{current_path} >#{out_path}")
|
||||
when [66, 90]
|
||||
system("bzip2 -d -k -c #{current_path} >#{out_path}")
|
||||
else
|
||||
raise "unknown compressed file format"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
@ -1 +1 @@
|
||||
class StdinTimingUploader < Bzip2Uploader; end
|
||||
class StdinTimingUploader < CompressedFileUploader; end
|
||||
|
@ -1 +1 @@
|
||||
class StdoutTimingUploader < Bzip2Uploader; end
|
||||
class StdoutTimingUploader < CompressedFileUploader; end
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue