file-digests 0.0.42 → 0.0.44

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.
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 +7 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c914ef250d4e173e31498c81865f4b43da56f91f81f2f16325f573747758c20b
4
- data.tar.gz: 55bec69638ec367ca346de5b1d72194daa0bab75972186e0dd3ca4da0a0ceb9e
3
+ metadata.gz: 9acf90b4f4988d5f012f39b94171323a57019595017f0a61d1148c670327c423
4
+ data.tar.gz: b81c9284ec5217582a5f92737a34629149395c36dc47ba189b4264e4d21f3116
5
5
  SHA512:
6
- metadata.gz: 3963d53565a261db7b7bad2d8d662aa8fe407b92ddca9264afd10f6f9451f6aa1cfeec2825a503fc6b01f18cc85a672e4cf031109a2279e3c2d74d5c74c7cdb2
7
- data.tar.gz: e6be01d8d1887010387ba5206bcb5937dac395fa5ea05c546076f76998d4603030ba5e781f43c2414e99f20bc241fcc3446721e7b9dca668af0fe7e6cff7fe46
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.42
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: 2021-04-26 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
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.1'
19
+ version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.1'
26
+ version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sqlite3
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.3'
33
+ version: '1.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.3'
40
+ version: '1.4'
41
41
  description: Calculate file digests and check for the possible file corruption
42
42
  email: stan@senotrusov.com
43
43
  executables:
@@ -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.1.4
69
+ rubygems_version: 3.3.26
70
70
  signing_key:
71
71
  specification_version: 4
72
72
  summary: file-digests