class Fingerprint::Command::Duplicates
Attributes
duplicates_recordset[R]
Public Instance Methods
call()
click to toggle source
# File lib/fingerprint/command/duplicates.rb, line 50 def call @duplicates_recordset = RecordSet.new results = RecordSetPrinter.new(@duplicates_recordset, @parent.output) master_file_path = @master master_recordset = RecordSet.load_file(master_file_path) ignore_similar = false copy_file_paths = @copies if copy_file_paths.size == 0 copy_file_paths = [master_file_path] ignore_similar = true end copy_file_paths.each do |copy_file_path| copy_recordset = RecordSet.load_file(copy_file_path) copy_recordset.records.each do |record| next unless record.file? record.metadata['fingerprint'] = copy_file_path # We need to see if the record exists in the master if @options[:verbose] $stderr.puts "Checking #{record.inspect}" end main_record = master_recordset.find_by_key(record) # If we are scanning the same index, don't print out every file, just those that are duplicates within the single file. if ignore_similar && main_record && (main_record.path == record.path) main_record = nil end if main_record record.metadata['original.path'] = main_record.path record.metadata['original.fingerprint'] = master_file_path results << record if !@options[:inverse] if @options[:delete] delete(copy_recordset.full_path(record.path)) end else results << record if @options[:inverse] end end end end
delete(path)
click to toggle source
# File lib/fingerprint/command/duplicates.rb, line 46 def delete(path) FileUtils.rm_f(path) end