qdumpfs 1.0.0 → 1.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d4f23500798845b355c0218ddb9fe5245d18bc0fb206a948d272f379adba6f3e
4
- data.tar.gz: 1acc58713bd896da322648ac909bbbbd8359831c530e5f160d022d8091fa4adc
3
+ metadata.gz: d148306a793bd1f61a3ed05f115859f0bca1dcb44ff53c560e5e331f0aa24df0
4
+ data.tar.gz: 12ee6edac7b57c310a319c67edfe5c962c4c0a0e52d87976c0e0cd700061cb42
5
5
  SHA512:
6
- metadata.gz: 4e1d6c3155d669e9a17a199b8ea70749615fe116c496c166bc477036c66715814337d1cbb8db562236d5bed755ba3f21bc45600f5d5e2f070f5eb847f9275057
7
- data.tar.gz: 2a4deb71d95507c1ddba720899528874df09f0245b9a668a90aca5fd2d4d06472632ee2b5b1b7c78c1a6d5e894c4c77f21ffa09b1734350f2aff697568aede4c
6
+ metadata.gz: a0ebdf2405bba933b7df4eaf3e551d8f2c6024e5c91db085fb212a82f674290a47d3f64d9590fea78aa25a39cdeefeb03ce0897fcbfd19e8825838bc51954c13
7
+ data.tar.gz: 6235f457cc58b9323a2a8b366d62facfbddb1f12b54cf82ab15015e1ddf38514c228b4952a6d4a15804b3505c4ec012af3315ebd7bc2753d8a34468e8684e81a
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ test*.cmd
16
16
  /data/to2
17
17
 
18
18
 
19
+ /sync_d.cmd
data/Gemfile.lock CHANGED
@@ -1,23 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qdumpfs (1.0.0)
4
+ qdumpfs (1.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- minitest (5.14.4)
10
- rake (13.0.3)
9
+ minitest (5.15.0)
10
+ rake (13.0.6)
11
11
 
12
12
  PLATFORMS
13
- ruby
14
- x64-mingw32
13
+ x86_64-darwin-21
15
14
 
16
15
  DEPENDENCIES
17
- bundler (~> 1.17)
16
+ bundler (~> 2.0)
18
17
  minitest (~> 5.0)
19
18
  qdumpfs!
20
19
  rake (>= 12.3.3)
21
20
 
22
21
  BUNDLED WITH
23
- 1.17.2
22
+ 2.3.8
@@ -176,6 +176,11 @@ module Qdumpfs
176
176
  end
177
177
  log(msg)
178
178
  end
179
+
180
+ def report_error(filename, reason)
181
+ msg = sprintf("err_file\t%s\t%s\n", filename, reason)
182
+ log(msg)
183
+ end
179
184
 
180
185
  def log(msg, console = true)
181
186
  return if (msg.nil? || msg == '')
@@ -186,6 +191,10 @@ module Qdumpfs
186
191
  def dry_run
187
192
  @opts[:n]
188
193
  end
194
+
195
+ def verbose
196
+ @opts[:v]
197
+ end
189
198
 
190
199
  def limit_sec
191
200
  @limit.to_i * 3600
@@ -1,4 +1,4 @@
1
1
  module Qdumpfs
2
- VERSION = "1.0.0"
2
+ VERSION = "1.2.0"
3
3
  end
4
4
 
data/lib/qdumpfs.rb CHANGED
@@ -15,6 +15,7 @@ module Qdumpfs
15
15
  include QdumpfsUtils
16
16
 
17
17
  def self.run(argv)
18
+ args = argv.clone
18
19
  STDOUT.sync = true
19
20
  opts = {}
20
21
  opt = OptionParser.new(argv)
@@ -33,7 +34,7 @@ module Qdumpfs
33
34
  opts[:ep] << Regexp.new(v)
34
35
  }
35
36
  opt.on('-s SIZE', '--exclude-by-size=SIZE', 'exclude files larger than SIZE') {|v| opts[:es] = v }
36
- opt.on('-w GLOB', '--exclude-by-glob=GLOB', 'exclude files matching GLOB') {|v| opts[:ep] = v }
37
+ opt.on('-w GLOB', '--exclude-by-glob=GLOB', 'exclude files matching GLOB') {|v| opts[:eg] = v }
37
38
  commands = ['backup', 'sync', 'list', 'expire', 'verify', 'delete']
38
39
  opt.on('-c COMMAND', '--command=COMMAND', commands, commands.join('|')) {|v| opts[:c] = v}
39
40
  opt.on('-l HOURS', '--limit=HOURS', 'limit hours') {|v| opts[:limit] = v}
@@ -56,6 +57,8 @@ module Qdumpfs
56
57
  option = Option.new(opts, argv)
57
58
  if opts[:v]
58
59
  puts "<<<<< qdumpfs options >>>>> "
60
+ args = args.join(' ')
61
+ puts "args: #{args}"
59
62
  puts "logdir: #{option.logdir}"
60
63
  puts "logpath: #{option.logpath}"
61
64
  puts "verifypath: #{option.verifypath}"
@@ -100,9 +103,15 @@ module Qdumpfs
100
103
  def log_result(src, today, elapsed)
101
104
  time = Time.now.strftime("%Y-%m-%dT%H:%M:%S")
102
105
  bytes = convert_bytes(@written_bytes)
103
- msg = sprintf("%s: %s -> %s (in %.2f sec, %s written)\n",
104
- time, src, today, elapsed, bytes)
106
+ msg = sprintf("%s: %s -> %s (in %.2f sec, %s written)\n", time, src, today, elapsed, bytes)
105
107
  log(msg)
108
+ log("error files:\n")
109
+ i = 1
110
+ @error_files.each do |filename, reason|
111
+ msg = "#{i}. #{filename}\t#{reason}\n"
112
+ log(msg)
113
+ i += 1
114
+ end
106
115
  end
107
116
 
108
117
  def log(msg, console = true)
@@ -113,6 +122,10 @@ module Qdumpfs
113
122
  @opt.report(type, file_name)
114
123
  end
115
124
 
125
+ def report_error(file_name, reason)
126
+ @opt.report_error(file_name, reason)
127
+ end
128
+
116
129
  def update_file(src, latest, today)
117
130
  type = detect_type(src, latest)
118
131
  report(type, src)
@@ -180,7 +193,8 @@ module Qdumpfs
180
193
  update_file(s, l, t)
181
194
  dirs[t] = File.stat(s) if File.ftype(s) == "directory"
182
195
  rescue => e
183
- wprintf("%s: %s", src, e.message)
196
+ report_error(s, e.message)
197
+ @error_files << [s, e.message]
184
198
  next
185
199
  end
186
200
  end
@@ -215,7 +229,8 @@ module Qdumpfs
215
229
  chown_if_root(type, s, t)
216
230
  dirs[t] = File.stat(s) if File.ftype(s) == "directory"
217
231
  rescue => e
218
- wprintf("%s: %s", s, e.message)
232
+ report_error(s, e.message)
233
+ @error_files << [s, e.message]
219
234
  next
220
235
  end
221
236
  end
@@ -295,6 +310,7 @@ module Qdumpfs
295
310
  log("##### backup start #####")
296
311
 
297
312
  @written_bytes = 0
313
+ @error_files = []
298
314
  start_time = Time.now
299
315
  if @opt.backup_at
300
316
  start_time = to_time(@opt.backup_at)
@@ -351,6 +367,7 @@ module Qdumpfs
351
367
 
352
368
  start_time = Time.now
353
369
  @written_bytes = 0
370
+ @error_files = []
354
371
  src = @opt.src
355
372
  dst = @opt.dst
356
373
 
@@ -397,6 +414,10 @@ module Qdumpfs
397
414
 
398
415
  end_time = Time.now
399
416
  diff = time_diff(start_time, end_time)
417
+
418
+ elapsed = Time.now - start_time
419
+ log_result(src, dst, elapsed)
420
+
400
421
  log("##### sync end #{fmt(end_time)} diff=#{diff} last_sync_complete=#{last_sync_complete} #####")
401
422
  end
402
423
 
data/qdumpfs.gemspec CHANGED
@@ -36,8 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
37
37
  spec.require_paths = ["lib"]
38
38
 
39
- spec.add_development_dependency "bundler", "~> 1.17"
40
- # spec.add_development_dependency "rake", "~> 10.0"
39
+ spec.add_development_dependency "bundler", "~> 2.0"
41
40
  spec.add_development_dependency "rake", ">= 12.3.3"
42
41
  spec.add_development_dependency "minitest", "~> 5.0"
43
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qdumpfs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - src
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-07 00:00:00.000000000 Z
11
+ date: 2022-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: '2.0'
20
20
  type: :development
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: '1.17'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -105,7 +105,7 @@ metadata:
105
105
  homepage_uri: https://github.com/src256/qdumpfs
106
106
  source_code_uri: https://github.com/src256/qdumpfs
107
107
  changelog_uri: https://github.com/src256/qdumpfs
108
- post_install_message:
108
+ post_install_message:
109
109
  rdoc_options: []
110
110
  require_paths:
111
111
  - lib
@@ -120,8 +120,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  - !ruby/object:Gem::Version
121
121
  version: '0'
122
122
  requirements: []
123
- rubygems_version: 3.0.3
124
- signing_key:
123
+ rubygems_version: 3.2.22
124
+ signing_key:
125
125
  specification_version: 4
126
126
  summary: qdumpfs
127
127
  test_files: []