qbash 0.2.0 → 0.2.2

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: 39244de3b00f6094ec91699c5a7eb8f0e2e7cf53670233dfb21d5df3a05d00fc
4
- data.tar.gz: 8f17ae0148d5a5426ca7754bc12f1746b57b0f9c82fd4a48f0611dee186dc760
3
+ metadata.gz: 83183014aa9cde18aa4c0924665c2f1d18940d4f4ff64a66602a0ba973aa1aa0
4
+ data.tar.gz: 69881b928dbf2526c9e89542620d27d1cc90ffde48dd369ed2dfbe4051c0e724
5
5
  SHA512:
6
- metadata.gz: 4ea302ab3a7094e337b55367c8c10db61465d7ac24187e2691346f25ca1db4ec587c4f6a72b3c9d9c148f9347beabcb6a6f8fb16cd07e09ffd5b12af6521fd3a
7
- data.tar.gz: 3c56561a93b211904ac4482df6cf1f3dd31b989792f984e691259d7374f7a51bdf091354149324ddb3460efc7769c3f6db4f489e413d59af7e20d7ae916049d7
6
+ metadata.gz: c4800029b521eb3372ca256ccb874b816207d589753977ede31afb293b9922e7ab477057fdeaca94aa435e0e8ecb47a677fd2e6be39c14a7aacbd0f14aad1d07
7
+ data.tar.gz: 0d87c04e4f0e2d85b1208da0824161d6c720a39268e1e3838791d2776b41a331c0f6086429d680ddf1c46429db4b2fb3e211aeac50ef175c9804057a491b6db9
data/lib/qbash.rb CHANGED
@@ -50,14 +50,14 @@ module Kernel
50
50
  # @param [String] cmd The command to run, for example +echo "Hello, world!"+
51
51
  # @param [String] stdin The +stdin+ to provide to the command
52
52
  # @param [Hash] env Hash of environment variables
53
- # @param [Loog|IO] log Logging facility with +.debug()+ method (or +$stdout+)
53
+ # @param [Loog|IO] log Logging facility with +.debug()+ method (or +$stdout+, or nil if should go to +/dev/null+)
54
54
  # @param [Array] accept List of accepted exit codes (accepts all if the list is +nil+)
55
55
  # @param [Boolean] both If set to TRUE, the function returns an array +(stdout, code)+
56
56
  # @param [Integer] level Logging level (use +Logger::DEBUG+, +Logger::INFO+, +Logger::WARN+, or +Logger::ERROR+)
57
57
  # @return [String] Everything that was printed to the +stdout+ by the command
58
58
  def qbash(cmd, stdin: '', env: {}, log: Loog::NULL, accept: [0], both: false, level: Logger::DEBUG)
59
59
  env.each { |k, v| raise "env[#{k}] is nil" if v.nil? }
60
- cmd = cmd.reject { |a| a.nil? || a.empty? }.join(' ') if cmd.is_a?(Array)
60
+ cmd = cmd.reject { |a| a.nil? || (a.is_a?(String) && a.empty?) }.join(' ') if cmd.is_a?(Array)
61
61
  mtd =
62
62
  case level
63
63
  when Logger::DEBUG
@@ -71,7 +71,9 @@ module Kernel
71
71
  else
72
72
  raise "Unknown log level #{level}"
73
73
  end
74
- if log.respond_to?(mtd)
74
+ if log.nil?
75
+ # nothing to print
76
+ elsif log.respond_to?(mtd)
75
77
  log.__send__(mtd, "+ #{cmd}")
76
78
  else
77
79
  log.print("+ #{cmd}\n")
@@ -90,7 +92,9 @@ module Kernel
90
92
  rescue IOError => e
91
93
  ln = Backtrace.new(e).to_s
92
94
  end
93
- if log.respond_to?(mtd)
95
+ if log.nil?
96
+ # no logging
97
+ elsif log.respond_to?(mtd)
94
98
  log.__send__(mtd, ln)
95
99
  else
96
100
  log.print("#{ln}\n")
data/qbash.gemspec CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
26
26
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
27
27
  s.required_ruby_version = '>=3.2'
28
28
  s.name = 'qbash'
29
- s.version = '0.2.0'
29
+ s.version = '0.2.2'
30
30
  s.license = 'MIT'
31
31
  s.summary = 'Quick Executor of a BASH Command'
32
32
  s.description =
data/test/test_qbash.rb CHANGED
@@ -42,7 +42,7 @@ class TestQbash < Minitest::Test
42
42
  end
43
43
 
44
44
  def test_command_as_array
45
- assert_equal('123', qbash(['printf 1;', 'printf 2;', 'printf 3']))
45
+ assert_equal('123', qbash(['printf 1;', 'printf 2;', 'printf', 3]))
46
46
  end
47
47
 
48
48
  def test_log_to_console
@@ -59,6 +59,10 @@ class TestQbash < Minitest::Test
59
59
  assert_equal('Hi!', qbash(['printf', nil, 'Hi!', '']))
60
60
  end
61
61
 
62
+ def test_log_to_nil
63
+ assert_equal("yes\n", qbash('echo yes', log: nil))
64
+ end
65
+
62
66
  def test_accept_zero
63
67
  qbash('echo hi', accept: nil)
64
68
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qbash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-25 00:00:00.000000000 Z
11
+ date: 2024-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backtrace