tabry 0.3.1 → 0.3.2
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 +4 -4
- data/lib/tabry/cli/util.rb +14 -2
- data/lib/tabry/version.rb +1 -1
- data/spec/tabry/cli/util_spec.rb +29 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aae042ca4dc5192e4462e101ecc6f70ba6e55e428dc18791ba5735cb7d90f657
|
4
|
+
data.tar.gz: ea25d08f4cc73c799f7b2987937e6639a13976a5f65a663f30edacfd7633e533
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc7d1f309edf7c38a85cc4b46895bce5f30bf4e375777753170f970c87d17f772818cae0aea581544306c1b86fef87000b247dae2aef7587afda5d4fd163e953
|
7
|
+
data.tar.gz: a75c5a8d540a356b2d058b1c2e87aefc79139fd400cfac22965dbcf6d0acf21b908c9533d41d742570fec020065ec8bc7cbcd61a4a8381e260f12e9c117a0db8
|
data/lib/tabry/cli/util.rb
CHANGED
@@ -8,6 +8,8 @@ module Tabry
|
|
8
8
|
module Util
|
9
9
|
module_function
|
10
10
|
|
11
|
+
SHELL_FOR_WINDOWS = ["bash", "-c"]
|
12
|
+
|
11
13
|
def make_cmdline(cmdline, *args, echo: false, echo_only: false, merge_stderr: false)
|
12
14
|
# Allow to pass in an array, or varargs:
|
13
15
|
args = args.first if args.length == 1 && args.first.is_a?(Array)
|
@@ -31,7 +33,13 @@ module Tabry
|
|
31
33
|
|
32
34
|
def system(*cmdline, **opts)
|
33
35
|
cmdline = make_cmdline(*cmdline, **opts)
|
34
|
-
|
36
|
+
return unless cmdline
|
37
|
+
|
38
|
+
if Gem.win_platform?
|
39
|
+
Kernel.system *SHELL_FOR_WINDOWS, cmdline
|
40
|
+
else
|
41
|
+
Kernel.system cmdline
|
42
|
+
end
|
35
43
|
end
|
36
44
|
|
37
45
|
# TODO: would be nice to get separate STDERR and STDOUT
|
@@ -45,7 +53,11 @@ module Tabry
|
|
45
53
|
|
46
54
|
enoent_error = false
|
47
55
|
begin
|
48
|
-
res =
|
56
|
+
res = if Gem.win_platform?
|
57
|
+
IO.popen([*SHELL_FOR_WINDOWS, cmdline]) { |io| io.read }
|
58
|
+
else
|
59
|
+
`#{cmdline}`
|
60
|
+
end
|
49
61
|
rescue Errno::ENOENT
|
50
62
|
enoent_error = true
|
51
63
|
end
|
data/lib/tabry/version.rb
CHANGED
data/spec/tabry/cli/util_spec.rb
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
require_relative "../../../lib/tabry/cli/util"
|
4
4
|
|
5
|
+
require "tempfile"
|
6
|
+
|
5
7
|
describe Tabry::CLI::Util do
|
6
8
|
describe ".make_cmdline" do
|
7
9
|
it "escapes a single string" do
|
@@ -121,5 +123,32 @@ describe Tabry::CLI::Util do
|
|
121
123
|
)
|
122
124
|
end
|
123
125
|
end
|
126
|
+
|
127
|
+
describe "on windows" do
|
128
|
+
before { expect(Gem).to receive(:win_platform?).and_return(true) }
|
129
|
+
|
130
|
+
it "uses bash" do
|
131
|
+
output = described_class.backtick_or_die("echo $BASH_VERSION")
|
132
|
+
expect(output).to match(/^[0-9]/)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
describe "system" do
|
138
|
+
it "calls Kernel.system with the escaped code" do
|
139
|
+
expect(Kernel).to receive(:system).with("echo \\' > /dev/null")
|
140
|
+
described_class.system("echo %s > /dev/null", "'")
|
141
|
+
end
|
142
|
+
|
143
|
+
describe "on windows" do
|
144
|
+
before { expect(Gem).to receive(:win_platform?).and_return(true) }
|
145
|
+
|
146
|
+
it "uses bash" do
|
147
|
+
Tempfile.open do |f|
|
148
|
+
described_class.system("echo $BASH_VERSION > %s", f.path)
|
149
|
+
expect(File.read(f.path)).to match(/^[0-9]/)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
124
153
|
end
|
125
154
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tabry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Battaglia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry-byebug
|