file-digests 0.0.42 → 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 +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