X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=code_ruby%2Flib%2Fmaasha%2Ffilesys.rb;h=02a8a842f1157a9824052c589795c1630580ff90;hb=HEAD;hp=4f58898b91977a3dbc1695ed3191018b316bc34e;hpb=508d11515a4f8ac768829b56486c1b660b8f247e;p=biopieces.git diff --git a/code_ruby/lib/maasha/filesys.rb b/code_ruby/lib/maasha/filesys.rb index 4f58898..02a8a84 100644 --- a/code_ruby/lib/maasha/filesys.rb +++ b/code_ruby/lib/maasha/filesys.rb @@ -22,8 +22,6 @@ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -require 'zlib' -# require 'bzip2' require 'open3' # Error class for all exceptions to do with Filesys. @@ -50,9 +48,8 @@ class Filesys if mode == 'w' case options[:compress] when :gzip - ios = Zlib::GzipWriter.new File.open(file, mode, options) + ios, = Open3.pipeline_w("gzip -f", out: file) when :bzip, :bzip2 - # ios = Bzip2::Writer.new File.open(file, mode, options) # TODO being pissed with buggy bzip2 gem. ios, = Open3.pipeline_w("bzip2 -c", out: file) else ios = File.open(file, mode, options) @@ -61,14 +58,15 @@ class Filesys if file == '-' ios = STDIN else - case `file #{file}` + case `file -Lk #{file}` when /gzip/ - ios = Zlib::GzipReader.new File.open(file, mode, options) + ios = IO.popen("gzip -cd #{file}", :external_encoding=>"EUC-JP") when /bzip/ - # ios = Bzip2::Reader.new File.open(file, mode, options) # TODO this method is buggy, investigate ios = IO.popen("bzcat #{file}") - else + when /ASCII/ ios = File.open(file, mode, options) + else + raise "Unknown file type: #{`file -L #{file}`}" end end end