Sha256: bf135eca22243d6d1c00c31e6716269a19f6b4d361eb891dfa659d38c65ddfb8

Contents?: true

Size: 827 Bytes

Versions: 4

Compression:

Stored size: 827 Bytes

Contents

require 'parallel'
require 'pathname'

module Bio
  class Gadget < Thor

    namespace :bio

    desc 'fqlzma', 'automatic (re)compression of *.fq(.gz|.bz2) files'
    def fqlzma
      Parallel.map(Pathname.glob('*.fq{.gz,.bz2,}')) { |fqfilename|
        lzmafilename = fqfilename.sub(/\.fq(\.(gz|bz2))*$/, '.fq.lzma')
        if !lzmafilename.exist?
          case fqfilename.extname
          when '.gz'
            decompressor = 'gunzip -c'
          when '.bz2'
            decompressor = 'bunzip2 -c'
          else
            decompressor = 'cat'
          end
          puts "compressing #{lzmafilename}..."
          system "#{decompressor} #{fqfilename} | lzma -c > #{lzmafilename} 2> #{lzmafilename}.log"
          system "lzma -t #{lzmafilename} >> #{lzmafilename}.log 2>&1"
        end
      }
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bio-gadget-0.1.4 lib/bio-gadget/fqlzma.rb
bio-gadget-0.1.3 lib/bio-gadget/fqlzma.rb
bio-gadget-0.1.2 lib/bio-gadget/fqlzma.rb
bio-gadget-0.1.1 lib/bio-gadget/fqlzma.rb