toolrack 0.15.0 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b24177e7add6e8ab1894461fd2ed8244da6b91c13ade087c2dee1379525d84f2
4
- data.tar.gz: 419ad51fb287e9d4f65f9addfbf7be5bdcf7295a0286f7349acd45a21887ec41
3
+ metadata.gz: e388520a9fb400d5dd814ccbdcad3930b33f7f320179e4eee7595339d2efedd7
4
+ data.tar.gz: e8eff7fab3d9d62dd451bb371a8bcd7aaf817fc9c25b83955a1e9854413d1fcc
5
5
  SHA512:
6
- metadata.gz: 168d9e41ddfdc88ac69d1f9735f6251bdadd479576b62f79b47d7e1158437899338fd659984c931b2318c38e31fbf97a816b10ff2ee503a8626157e4342e22fd
7
- data.tar.gz: 538232d0ff48587472d34406c373b91491b8467f83ba5e93dc743b76f6ab79342169ea3b5cdd1b80a860cf89e35c071b200257246c954691b4dcf8178b5844a7
6
+ metadata.gz: 7dd4df7a2dd222f941b3ee4283f84fdf88c26da9583e6d2d716299df365597224b793e5cddc9f895bcef50bd96b10d7280c7724703a69214a83c536268a22a1e
7
+ data.tar.gz: 3b72652967903812e39e124f60ea6488f1acc33d56fdbea42daba1c2a3c11be82f75512d7e5e30c40e6bea00eec8d241d2c7bb521d3946c396f22d5234c30347
@@ -0,0 +1,6 @@
1
+ ---
2
+ toolrack:
3
+ - :version: 0.16.1
4
+ :timestamp: 1635759283.7389827
5
+ - :version: 0.16.2
6
+ :timestamp: 1636343293.571501
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
3
 
4
- require 'devops_helper'
4
+ require 'devops_assist'
5
5
 
6
6
  Rake::TestTask.new(:test) do |t|
7
7
  t.libs << "test"
@@ -10,11 +10,24 @@ module Antrapol
10
10
  elsif obj.nil?
11
11
  true
12
12
  elsif obj.respond_to?(:empty?)
13
- if obj.respond_to?(:strip)
14
- obj.strip.empty?
15
- else
16
- obj.empty?
13
+ begin
14
+ if obj.respond_to?(:strip)
15
+ obj.strip.empty?
16
+ else
17
+ obj.empty?
18
+ end
19
+ rescue ArgumentError => ex
20
+ # strip sometimes trigger 'invalid byte sequence in UTF-8' error
21
+ # This will happen if the data is binary but the reading of the data
22
+ # is in ascii format.
23
+ if ex.message =~ /invalid byte sequence/
24
+ cuLogger.twarn :is_empty?, "Invalid byte sequence exception might indicates the data is expected in binary but was given a ASCII buffer to test. Please load the data in binary and test again"
25
+ false
26
+ else
27
+ raise
28
+ end
17
29
  end
30
+
18
31
  elsif obj.respond_to?(:length)
19
32
  obj.length == 0
20
33
  elsif obj.respond_to?(:size)
@@ -48,6 +61,16 @@ module Antrapol
48
61
  end
49
62
  alias_method :is_str_bool?, :is_string_boolean?
50
63
 
64
+ def cuLogger
65
+ if @cuLogger.nil?
66
+ @cuLogger = Tlogger.new
67
+ end
68
+ @cuLogger
69
+ end
70
+
71
+ #
72
+ # Make it available at class level too
73
+ #
51
74
  def self.included(klass)
52
75
  klass.class_eval <<-END
53
76
  extend Antrapol::ToolRack::ConditionUtils
@@ -115,6 +115,18 @@ module Antrapol
115
115
  alias_method :str_to_bool, :string_to_bool
116
116
  alias_method :string_to_boolean, :string_to_bool
117
117
 
118
+
119
+
120
+ #
121
+ # Make it available at class level too
122
+ #
123
+ def self.included(klass)
124
+ klass.class_eval <<-END
125
+ extend Antrapol::ToolRack::DataConversionUtils
126
+ END
127
+ end
128
+
129
+
118
130
  end
119
131
  end
120
132
  end
@@ -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.15.0"
3
+ VERSION = "0.17.0"
4
4
  end
5
5
  end
6
6
 
@@ -0,0 +1,47 @@
1
+
2
+ require_relative 'condition_utils'
3
+
4
+ module Antrapol
5
+ module ToolRack
6
+ module VersionUtils
7
+ include Antrapol::ToolRack::ConditionUtils
8
+
9
+ class VersionUtilsError < StandardError; end
10
+
11
+ def is_version_equal?(*args)
12
+ res = true
13
+ target = Gem::Version.new(args.first)
14
+ args.each do |a|
15
+ subj = Gem::Version.new(a)
16
+ res = (subj == target)
17
+ break if not res
18
+ target = subj
19
+ end
20
+
21
+ res
22
+ end
23
+
24
+ def possible_versions(ver)
25
+ raise VersionUtilsError, "Given version to extrapolate is empty" if is_empty?(ver)
26
+ vv = ver.to_s.split('.')
27
+ tv = vv.clone
28
+ res = []
29
+ cnt = 0
30
+ (0...vv.length).each do |i|
31
+ tv = vv.clone
32
+ tv[i] = tv[i].to_i+1
33
+
34
+ j = i
35
+ loop do
36
+ break if j >= (vv.length-1)
37
+ j += 1
38
+ tv[j] = 0
39
+ end
40
+ res << tv.join(".")
41
+ end
42
+ res
43
+ end
44
+
45
+ end
46
+ end
47
+ end
data/lib/toolrack.rb CHANGED
@@ -15,6 +15,8 @@ require_relative 'toolrack/password_utils'
15
15
  require_relative 'toolrack/hash_config'
16
16
  require_relative 'toolrack/cli_utils'
17
17
  require_relative 'toolrack/null_output'
18
+ require_relative 'toolrack/version_utils'
19
+ require_relative 'toolrack/file_utils'
18
20
 
19
21
  module Antrapol
20
22
  module ToolRack
@@ -38,6 +40,8 @@ TR::DataConvUtils = ToolRack::DataConvUtils
38
40
  ToolRack::CondUtils = ToolRack::ConditionUtils
39
41
  TR::CondUtils = ToolRack::ConditionUtils
40
42
 
43
+ TR::ProcessUtils = ToolRack::ProcessUtils
44
+
41
45
  ToolRack::PassUtils = ToolRack::PasswordUtils
42
46
  TR::PassUtils = ToolRack::PasswordUtils
43
47
 
@@ -53,3 +57,8 @@ TR::CliUtils = ToolRack::CliUtils
53
57
 
54
58
  TR::NullOut = ToolRack::NullOutput
55
59
 
60
+ TR::VerUtils = ToolRack::VersionUtils
61
+ TR::VUtils = TR::VerUtils
62
+
63
+ TR::FileUtils = ToolRack::FileUtils
64
+
data/toolrack.gemspec CHANGED
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.add_dependency "tlogger" #, "~> 0.21"
30
30
  spec.add_dependency "base58"
31
31
 
32
- spec.add_development_dependency "devops_helper" #, "~> 0.1.0"
32
+ #spec.add_development_dependency "devops_helper" #, "~> 0.1.0"
33
+ spec.add_development_dependency "devops_assist"
33
34
  spec.add_development_dependency "rspec"
34
35
  end
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.15.0
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-10-20 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
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: devops_helper
42
+ name: devops_assist
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -74,6 +74,7 @@ extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
76
  - ".gitignore"
77
+ - ".release_history.yml"
77
78
  - ".rspec"
78
79
  - ".travis.yml"
79
80
  - CODE_OF_CONDUCT.md
@@ -87,6 +88,7 @@ files:
87
88
  - lib/toolrack/condition_utils.rb
88
89
  - lib/toolrack/data_conversion_utils.rb
89
90
  - lib/toolrack/exception_utils.rb
91
+ - lib/toolrack/file_utils.rb
90
92
  - lib/toolrack/global.rb
91
93
  - lib/toolrack/hash_config.rb
92
94
  - lib/toolrack/null_output.rb
@@ -95,6 +97,7 @@ files:
95
97
  - lib/toolrack/runtime_utils.rb
96
98
  - lib/toolrack/utils.rb
97
99
  - lib/toolrack/version.rb
100
+ - lib/toolrack/version_utils.rb
98
101
  - process_test/backtick_test.rb
99
102
  - process_test/pty_test.rb
100
103
  - process_test/shell_test.rb