file-digests 0.0.39 → 0.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/file-digests.rb +38 -21
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: a9d040599aee9aeb62234557b2a92edec36265e4439965e4c9d00a2c9afa117a
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 992fe8a843afe761537a3c48b1ecde27ccdf8101be58dd4b456572c59232141b
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 1e15aa584690f8062a51cbb4785c9716e610258fba77859cb2b50642154701ffa1651312be1f6455921ee435ed7df5ed00bcc36f12def4009ac7edcc4aebb93e
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 5c94ae4165677af0be7b790a7a92ffc9af7751f0dd2661bf238d06b02569ef4ec746908721c7d16781d11a431048759e1490f9e180ea9c2e647f5e585a3ebbe0
         
     | 
    
        data/lib/file-digests.rb
    CHANGED
    
    | 
         @@ -139,17 +139,29 @@ class FileDigests 
     | 
|
| 
       139 
139 
     | 
    
         
             
              end
         
     | 
| 
       140 
140 
     | 
    
         | 
| 
       141 
141 
     | 
    
         
             
              def initialize_paths files_path, digest_database_path
         
     | 
| 
      
 142 
     | 
    
         
            +
                @start_time_filename_string = Time.now.strftime("%Y-%m-%d %H-%M-%S")
         
     | 
| 
       142 
143 
     | 
    
         
             
                @files_path = cleanup_path(files_path || ".")
         
     | 
| 
       143 
144 
     | 
    
         
             
                raise "ERROR: Files path must be a readable directory" unless (File.directory?(@files_path) && File.readable?(@files_path))
         
     | 
| 
       144 
145 
     | 
    
         
             
                @files_path = realpath_with_disk @files_path
         
     | 
| 
       145 
146 
     | 
    
         | 
| 
       146 
     | 
    
         
            -
                @error_log_path = @files_path + "file-digests errors #{ 
     | 
| 
      
 147 
     | 
    
         
            +
                @error_log_path = @files_path + "file-digests errors #{@start_time_filename_string}.txt"
         
     | 
| 
      
 148 
     | 
    
         
            +
                @missing_files_path = @files_path + "file-digests missing files #{@start_time_filename_string}.txt"
         
     | 
| 
       147 
149 
     | 
    
         | 
| 
       148 
150 
     | 
    
         
             
                @digest_database_path = digest_database_path ? cleanup_path(digest_database_path) : @files_path
         
     | 
| 
       149 
151 
     | 
    
         
             
                @digest_database_path += ".file-digests.sqlite" if File.directory?(@digest_database_path)
         
     | 
| 
       150 
152 
     | 
    
         
             
                ensure_dir_exist @digest_database_path.dirname
         
     | 
| 
       151 
153 
     | 
    
         
             
                @digest_database_path = realdirpath_with_disk @digest_database_path
         
     | 
| 
       152 
     | 
    
         
            -
                 
     | 
| 
      
 154 
     | 
    
         
            +
                
         
     | 
| 
      
 155 
     | 
    
         
            +
                @digest_database_files = [
         
     | 
| 
      
 156 
     | 
    
         
            +
                  "#{@digest_database_path}",
         
     | 
| 
      
 157 
     | 
    
         
            +
                  "#{@digest_database_path}-wal",
         
     | 
| 
      
 158 
     | 
    
         
            +
                  "#{@digest_database_path}-shm"
         
     | 
| 
      
 159 
     | 
    
         
            +
                ]
         
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
      
 161 
     | 
    
         
            +
                @skip_files = @digest_database_files + [
         
     | 
| 
      
 162 
     | 
    
         
            +
                  @error_log_path.to_s,
         
     | 
| 
      
 163 
     | 
    
         
            +
                  @missing_files_path.to_s
         
     | 
| 
      
 164 
     | 
    
         
            +
                ]
         
     | 
| 
       153 
165 
     | 
    
         | 
| 
       154 
166 
     | 
    
         
             
                if @options[:verbose]
         
     | 
| 
       155 
167 
     | 
    
         
             
                  puts "Target directory: #{@files_path}"
         
     | 
| 
         @@ -288,7 +300,7 @@ class FileDigests 
     | 
|
| 
       288 
300 
     | 
    
         
             
                      if any_exceptions?
         
     | 
| 
       289 
301 
     | 
    
         
             
                        STDERR.puts "Due to previously occurred errors, missing files will not removed from the database."
         
     | 
| 
       290 
302 
     | 
    
         
             
                      else
         
     | 
| 
       291 
     | 
    
         
            -
                         
     | 
| 
      
 303 
     | 
    
         
            +
                        report_missing_files
         
     | 
| 
       292 
304 
     | 
    
         
             
                        if !@options[:test_only] && (@options[:auto] || confirm("Remove missing files from the database"))
         
     | 
| 
       293 
305 
     | 
    
         
             
                          nested_transaction do
         
     | 
| 
       294 
306 
     | 
    
         
             
                            puts "Removing missing files..." if @options[:verbose]
         
     | 
| 
         @@ -356,8 +368,8 @@ class FileDigests 
     | 
|
| 
       356 
368 
     | 
    
         | 
| 
       357 
369 
     | 
    
         
             
                raise "File is not readable" unless stat.readable?
         
     | 
| 
       358 
370 
     | 
    
         | 
| 
       359 
     | 
    
         
            -
                if @ 
     | 
| 
       360 
     | 
    
         
            -
                  puts "SKIPPING  
     | 
| 
      
 371 
     | 
    
         
            +
                if @skip_files.include?(filename)
         
     | 
| 
      
 372 
     | 
    
         
            +
                  puts "SKIPPING FILE: #{filename}" if @options[:verbose]
         
     | 
| 
       361 
373 
     | 
    
         
             
                  return
         
     | 
| 
       362 
374 
     | 
    
         
             
                end
         
     | 
| 
       363 
375 
     | 
    
         | 
| 
         @@ -369,10 +381,6 @@ class FileDigests 
     | 
|
| 
       369 
381 
     | 
    
         
             
                  new_digests_insert(normalized_filename, new_digest) if new_digest
         
     | 
| 
       370 
382 
     | 
    
         
             
                  process_file_indeed normalized_filename, mtime_string, digest
         
     | 
| 
       371 
383 
     | 
    
         
             
                end
         
     | 
| 
       372 
     | 
    
         
            -
             
     | 
| 
       373 
     | 
    
         
            -
              rescue => exception
         
     | 
| 
       374 
     | 
    
         
            -
                @counters[:exceptions] += 1
         
     | 
| 
       375 
     | 
    
         
            -
                report_file_exception exception, filename
         
     | 
| 
       376 
384 
     | 
    
         
             
              end
         
     | 
| 
       377 
385 
     | 
    
         | 
| 
       378 
386 
     | 
    
         
             
              def process_file_indeed filename, mtime, digest
         
     | 
| 
         @@ -428,10 +436,19 @@ class FileDigests 
     | 
|
| 
       428 
436 
     | 
    
         
             
                @counters[:renamed] = @db.changes
         
     | 
| 
       429 
437 
     | 
    
         
             
              end
         
     | 
| 
       430 
438 
     | 
    
         | 
| 
       431 
     | 
    
         
            -
              def  
     | 
| 
      
 439 
     | 
    
         
            +
              def report_missing_files
         
     | 
| 
       432 
440 
     | 
    
         
             
                puts "\nMISSING FILES:"
         
     | 
| 
      
 441 
     | 
    
         
            +
                write_missing_files STDOUT
         
     | 
| 
      
 442 
     | 
    
         
            +
                if missing_files_count > 256
         
     | 
| 
      
 443 
     | 
    
         
            +
                  File.open(@missing_files_path, "a") do |f|
         
     | 
| 
      
 444 
     | 
    
         
            +
                    write_missing_files f
         
     | 
| 
      
 445 
     | 
    
         
            +
                  end
         
     | 
| 
      
 446 
     | 
    
         
            +
                end
         
     | 
| 
      
 447 
     | 
    
         
            +
              end
         
     | 
| 
      
 448 
     | 
    
         
            +
             
     | 
| 
      
 449 
     | 
    
         
            +
              def write_missing_files dest
         
     | 
| 
       433 
450 
     | 
    
         
             
                missing_files_select_all_filenames.each do |record|
         
     | 
| 
       434 
     | 
    
         
            -
                  puts record["filename"]
         
     | 
| 
      
 451 
     | 
    
         
            +
                  dest.puts record["filename"]
         
     | 
| 
       435 
452 
     | 
    
         
             
                end
         
     | 
| 
       436 
453 
     | 
    
         
             
              end
         
     | 
| 
       437 
454 
     | 
    
         | 
| 
         @@ -583,21 +600,21 @@ class FileDigests 
     | 
|
| 
       583 
600 
     | 
    
         
             
              def walk_files(path, &block)
         
     | 
| 
       584 
601 
     | 
    
         
             
                Dir.each_child(path, encoding: "UTF-8") do |item|
         
     | 
| 
       585 
602 
     | 
    
         
             
                  item = "#{path}#{File::SEPARATOR}#{item}"
         
     | 
| 
       586 
     | 
    
         
            -
                   
     | 
| 
       587 
     | 
    
         
            -
             
     | 
| 
       588 
     | 
    
         
            -
             
     | 
| 
       589 
     | 
    
         
            -
                     
     | 
| 
       590 
     | 
    
         
            -
                      if File. 
     | 
| 
      
 603 
     | 
    
         
            +
                  begin
         
     | 
| 
      
 604 
     | 
    
         
            +
                    item_perhaps_nt_path = perhaps_nt_path item
         
     | 
| 
      
 605 
     | 
    
         
            +
                    
         
     | 
| 
      
 606 
     | 
    
         
            +
                    unless File.symlink? item_perhaps_nt_path
         
     | 
| 
      
 607 
     | 
    
         
            +
                      if File.directory?(item_perhaps_nt_path)
         
     | 
| 
      
 608 
     | 
    
         
            +
                        raise "Directory is not readable" unless File.readable?(item_perhaps_nt_path)
         
     | 
| 
       591 
609 
     | 
    
         
             
                        walk_files(item, &block)
         
     | 
| 
       592 
610 
     | 
    
         
             
                      else
         
     | 
| 
       593 
     | 
    
         
            -
                         
     | 
| 
       594 
     | 
    
         
            -
                        @counters[:exceptions] += 1
         
     | 
| 
      
 611 
     | 
    
         
            +
                        yield item
         
     | 
| 
       595 
612 
     | 
    
         
             
                      end
         
     | 
| 
       596 
     | 
    
         
            -
                    else
         
     | 
| 
       597 
     | 
    
         
            -
                      yield item
         
     | 
| 
       598 
613 
     | 
    
         
             
                    end
         
     | 
| 
      
 614 
     | 
    
         
            +
                  rescue => exception
         
     | 
| 
      
 615 
     | 
    
         
            +
                    @counters[:exceptions] += 1
         
     | 
| 
      
 616 
     | 
    
         
            +
                    report_file_exception exception, item
         
     | 
| 
       599 
617 
     | 
    
         
             
                  end
         
     | 
| 
       600 
     | 
    
         
            -
             
     | 
| 
       601 
618 
     | 
    
         
             
                end
         
     | 
| 
       602 
619 
     | 
    
         
             
              end
         
     | 
| 
       603 
620 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: file-digests
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.40
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Stanislav Senotrusov
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2020-10- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-10-20 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: openssl
         
     |