file-digests 0.0.43 → 0.0.44

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/file-digests +4 -0
  3. data/lib/file-digests.rb +17 -14
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e74595cb920bd6b52f8f0a0efab118afae509dc5406389d5203518ce801f2811
4
- data.tar.gz: ad4429b2d998dc82c441cb5ebd9b9f3640158f20abe0839ead0f0de57037854b
3
+ metadata.gz: 9acf90b4f4988d5f012f39b94171323a57019595017f0a61d1148c670327c423
4
+ data.tar.gz: b81c9284ec5217582a5f92737a34629149395c36dc47ba189b4264e4d21f3116
5
5
  SHA512:
6
- metadata.gz: 8c78ceabcbba358c5be5222681ef45d25acef175f4840022997d652c1740ad1c66a461b8ff2e618bb48a80f97783f7afa57d4281c41d7251c3aa94b4641b5079
7
- data.tar.gz: b83b60f4d66e5a57ed7f5f44a6f997c6c47e5df38686a63459fcf7943dd95cda8f9e7cb41a717e071ec5cfef14459b201afc9f5e18f990364f2a7654566af351
6
+ metadata.gz: 0230a40a940cacf4f3b8f096ac837c063013e0f0a9a3e451701f06429771a2fd7dee50cd61f4c8899cb0a0418c6e3fbbb2e701b581e9cb55eb390e2275251f58
7
+ data.tar.gz: e1d74ab1e23d9232179a2e72845fd57b8f904c4b0a758e508c6eb7e1fc5ae484859c2e1f4155bd0598d8da335612d53d44d62b8a2af9ac94d338aae1d17a4ee1
data/bin/file-digests CHANGED
@@ -16,4 +16,8 @@
16
16
 
17
17
  require 'file-digests'
18
18
 
19
+ $FILE_DIGESTS_EXIT_STATUS=0
20
+
19
21
  FileDigests.run_cli_utility
22
+
23
+ exit $FILE_DIGESTS_EXIT_STATUS
data/lib/file-digests.rb CHANGED
@@ -184,9 +184,11 @@ class FileDigests
184
184
  STDERR.puts "A list of errors is also saved in a file: #{@error_log_path}"
185
185
  end
186
186
 
187
- set_metadata(@options[:test_only] ? "latest_test_only_check_time" : "latest_complete_check_time", time_to_database(Time.now))
188
-
189
187
  print_counters
188
+
189
+ if any_missing_files? || any_likely_damaged? || any_exceptions?
190
+ $FILE_DIGESTS_EXIT_STATUS=1
191
+ end
190
192
  end
191
193
 
192
194
  puts "Performing database maintenance..." if @options[:verbose]
@@ -291,22 +293,20 @@ class FileDigests
291
293
  id INTEGER NOT NULL PRIMARY KEY,
292
294
  filename TEXT NOT NULL,
293
295
  mtime TEXT,
294
- digest TEXT NOT NULL,
295
- digest_check_time TEXT NOT NULL)"
296
+ digest TEXT NOT NULL)"
296
297
  execute "CREATE UNIQUE INDEX digests_filename ON digests(filename)"
297
298
  execute "CREATE INDEX digests_digest ON digests(digest)"
298
299
  set_metadata("digests_table_created_by_gem_version", FileDigests::VERSION) if FileDigests::VERSION
299
300
  end
300
301
 
301
- prepare_method :digests_insert, "INSERT INTO digests (filename, mtime, digest, digest_check_time) VALUES (?, ?, ?, datetime('now'))"
302
+ prepare_method :digests_insert, "INSERT INTO digests (filename, mtime, digest) VALUES (?, ?, ?)"
302
303
  prepare_method :digests_find_by_filename_query, "SELECT id, mtime, digest FROM digests WHERE filename = ?"
303
- prepare_method :digests_touch_check_time, "UPDATE digests SET digest_check_time = datetime('now') WHERE id = ?"
304
- prepare_method :digests_update_mtime_and_digest, "UPDATE digests SET mtime = ?, digest = ?, digest_check_time = datetime('now') WHERE id = ?"
305
- prepare_method :digests_update_mtime, "UPDATE digests SET mtime = ?, digest_check_time = datetime('now') WHERE id = ?"
304
+ prepare_method :digests_update_mtime_and_digest, "UPDATE digests SET mtime = ?, digest = ? WHERE id = ?"
305
+ prepare_method :digests_update_mtime, "UPDATE digests SET mtime = ? WHERE id = ?"
306
306
  prepare_method :digests_select_duplicates, "SELECT digest, filename FROM digests WHERE digest IN (SELECT digest FROM digests GROUP BY digest HAVING count(*) > 1) ORDER BY digest, filename;"
307
307
 
308
308
  unless get_metadata("database_version")
309
- set_metadata "database_version", "3"
309
+ set_metadata "database_version", "4"
310
310
  end
311
311
 
312
312
  # Convert database from 1st to 2nd version
@@ -326,7 +326,12 @@ class FileDigests
326
326
  set_metadata "database_version", "3"
327
327
  end
328
328
 
329
- check_if_database_is_at_certain_version "3"
329
+ if get_metadata("database_version") == "3"
330
+ execute "ALTER TABLE digests DROP COLUMN digest_check_time"
331
+ set_metadata "database_version", "4"
332
+ end
333
+
334
+ check_if_database_is_at_certain_version "4"
330
335
 
331
336
  create_temporary_tables
332
337
  end
@@ -362,7 +367,7 @@ class FileDigests
362
367
  digest TEXT NOT NULL)"
363
368
 
364
369
  prepare_method :new_digests_insert, "INSERT INTO new_digests (filename, digest) VALUES (?, ?)"
365
- prepare_method :digests_update_digests_to_new_digests, "INSERT INTO digests (filename, digest, digest_check_time) SELECT filename, digest, false FROM new_digests WHERE true ON CONFLICT (filename) DO UPDATE SET digest=excluded.digest"
370
+ prepare_method :digests_update_digests_to_new_digests, "INSERT INTO digests (filename, digest) SELECT filename, digest FROM new_digests WHERE true ON CONFLICT (filename) DO UPDATE SET digest=excluded.digest"
366
371
  end
367
372
 
368
373
  # Files
@@ -480,9 +485,7 @@ class FileDigests
480
485
  @counters[:good] += 1
481
486
  puts "GOOD: #{filename}" if @options[:verbose]
482
487
  unless @options[:test_only]
483
- if found["mtime"] == mtime
484
- digests_touch_check_time found["id"]
485
- else
488
+ if found["mtime"] != mtime
486
489
  digests_update_mtime mtime, found["id"]
487
490
  end
488
491
  end
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.43
4
+ version: 0.0.44
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stanislav Senotrusov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-20 00:00:00.000000000 Z
11
+ date: 2022-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: openssl
@@ -66,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
68
  requirements: []
69
- rubygems_version: 3.3.7
69
+ rubygems_version: 3.3.26
70
70
  signing_key:
71
71
  specification_version: 4
72
72
  summary: file-digests