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