toolrack 0.16.2 → 0.17.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: ab1dc47c48af6feb3a0aafffb05db94e72db915961c232e2c9574517cbd269fb
4
- data.tar.gz: e584df8293bc3c1dea88ae07a1eadc4ff8b73d8593d4dd9c4d5cd7e5fa8813f1
3
+ metadata.gz: e388520a9fb400d5dd814ccbdcad3930b33f7f320179e4eee7595339d2efedd7
4
+ data.tar.gz: e8eff7fab3d9d62dd451bb371a8bcd7aaf817fc9c25b83955a1e9854413d1fcc
5
5
  SHA512:
6
- metadata.gz: 5c14eedd41bc09df2493b047b6641631c4f0144ddcd35bb48c5c8bcea16dee906cabe7f623141be8fa2b93d19677ea392d0de4a2d1ca64e71d45d42a077da972
7
- data.tar.gz: a5a0d2b72ef55a4111a77718416b773737630eaf488e0ddb640d1f3c6300ff75493e2e36b449c670c75ca491ba96e1c2ad6efd66331ce9f2c2f886090eb747d5
6
+ metadata.gz: 7dd4df7a2dd222f941b3ee4283f84fdf88c26da9583e6d2d716299df365597224b793e5cddc9f895bcef50bd96b10d7280c7724703a69214a83c536268a22a1e
7
+ data.tar.gz: 3b72652967903812e39e124f60ea6488f1acc33d56fdbea42daba1c2a3c11be82f75512d7e5e30c40e6bea00eec8d241d2c7bb521d3946c396f22d5234c30347
data/.release_history.yml CHANGED
@@ -2,3 +2,5 @@
2
2
  toolrack:
3
3
  - :version: 0.16.1
4
4
  :timestamp: 1635759283.7389827
5
+ - :version: 0.16.2
6
+ :timestamp: 1636343293.571501
@@ -0,0 +1,72 @@
1
+
2
+ require 'openssl'
3
+
4
+ module Antrapol
5
+ module ToolRack
6
+ module FileUtils
7
+ include Antrapol::ToolRack::DataConversionUtils
8
+
9
+ class FileUtilsError < StandardError; end
10
+ module ClassMethods
11
+ def is_same?(*args, &block)
12
+ opts = { verbose: false }
13
+ if args.last.is_a?(Hash)
14
+ opts.merge!(args.last)
15
+ target = args[0..-2]
16
+ else
17
+ target = args
18
+ end
19
+
20
+ raise FileUtilsError, "is_same? requires at least 2 files" if target.length < 2
21
+
22
+ res = true
23
+ size = nil
24
+ target.each do |f|
25
+ raise FileUtilsError, "Given file #{f} to is_same? does not exist" if not File.exist?(f)
26
+
27
+ if size.nil?
28
+ size = File.size(f)
29
+ elsif File.size(f) != size
30
+ res = false
31
+ break
32
+ end
33
+
34
+ end
35
+
36
+ if res
37
+ prevDigRes = nil
38
+ target.each do |f|
39
+ dig = OpenSSL::Digest.new("SHA256")
40
+ bufSize = 2048*1000
41
+ File.open(f,"rb") do |f|
42
+ dig.update(f.read(bufSize))
43
+ end
44
+ digRes = dig.digest
45
+
46
+ STDOUT.puts "#{f} : #{to_hex(digRes)}" if opts[:verbose]
47
+
48
+ if prevDigRes.nil?
49
+ prevDigRes = digRes
50
+ elsif prevDigRes != digRes
51
+ res = false
52
+ break
53
+ end
54
+ end
55
+ end
56
+
57
+ res
58
+
59
+ end
60
+ end
61
+
62
+ def self.included(klass)
63
+ File.class_eval <<-END
64
+ extend Antrapol::ToolRack::FileUtils::ClassMethods
65
+ END
66
+ end
67
+
68
+ end
69
+ end
70
+ end
71
+
72
+
@@ -1,6 +1,6 @@
1
1
  module Antrapol
2
2
  module ToolRack
3
- VERSION = "0.16.2"
3
+ VERSION = "0.17.0"
4
4
  end
5
5
  end
6
6
 
data/lib/toolrack.rb CHANGED
@@ -16,6 +16,7 @@ require_relative 'toolrack/hash_config'
16
16
  require_relative 'toolrack/cli_utils'
17
17
  require_relative 'toolrack/null_output'
18
18
  require_relative 'toolrack/version_utils'
19
+ require_relative 'toolrack/file_utils'
19
20
 
20
21
  module Antrapol
21
22
  module ToolRack
@@ -59,3 +60,5 @@ TR::NullOut = ToolRack::NullOutput
59
60
  TR::VerUtils = ToolRack::VersionUtils
60
61
  TR::VUtils = TR::VerUtils
61
62
 
63
+ TR::FileUtils = ToolRack::FileUtils
64
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toolrack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.2
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-08 00:00:00.000000000 Z
11
+ date: 2021-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tlogger
@@ -88,6 +88,7 @@ files:
88
88
  - lib/toolrack/condition_utils.rb
89
89
  - lib/toolrack/data_conversion_utils.rb
90
90
  - lib/toolrack/exception_utils.rb
91
+ - lib/toolrack/file_utils.rb
91
92
  - lib/toolrack/global.rb
92
93
  - lib/toolrack/hash_config.rb
93
94
  - lib/toolrack/null_output.rb