class Object

Public Instance Methods

load_cksum_list( sumtype, file ) click to toggle source
# File lib/ckfiles/libs.rb, line 26
def load_cksum_list( sumtype, file )
        # returns { file1=>sum, file2=>sum, file3=>sum ... fileN=>sum }
        
        if sumtype == 'sfv'
                file_ext = 'sfv'
        elsif sumtype == 'md5'
                file_ext = 'md5'
        else
                raise 'not supported cksum type'
        end
        
        sfs = File.new( file ).readlines
        sfs.collect! { |y| y.chomp }
        begin
                sfs = sfs.collect { |y| y.gsub(/\\/,'/') }
        rescue => errmsg
                puts "ERROR: #{errmsg}  FILE:  #{file}"
        end
        sfs.flatten!
        sfs.compact!
        sfs.delete_if { |y| y == '' }
        sfs.delete_if { |y| y[0..0] == '#' }
        sfs.delete_if { |y| y[0..0] == ';' }
        sfs.delete_if { |y| y[0..4] == 'MD5 (' } #this format is a pain so drop
        
        n = {} 
        if sumtype == 'sfv'
                for s in sfs
                        n[s[0..-10]] = s[-8..-1]
                end
        elsif sumtype == 'md5'
                for s in sfs
                        n[s[34..-1]] = s[0..31]
                end
        end
        n.each { |f,sum| puts "#{sum} #{f}" } if $debug

        if n.length > 0
                n
        else
                {}
        end    
end