vx-lib-shell 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vx/lib/shell/process.rb +4 -2
- data/lib/vx/lib/shell/ssh.rb +4 -2
- data/lib/vx/lib/shell/version.rb +1 -1
- data/spec/lib/ssh_spec.rb +3 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac1de258197e6487b76d4b881ef6bb96050b8a02
|
4
|
+
data.tar.gz: bc0e35943023134797f32e80676d95e4f3bb76a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7eeaa52a2799bacb5f906d6581b5adbb2842de78c768e1cb1a0bcb928681af1c24036185bd508bbe7ca21e97d14821f554b07570f8c3e53f993637a5d5dd4133
|
7
|
+
data.tar.gz: 57edc0a4c994578ca8dc3cc14702087ad0253848c14a5f331dd6828428d4293119f2500a752c811e46250744205df40ac0983c40bdd54c958092d2f4f32dcf6c
|
data/lib/vx/lib/shell/process.rb
CHANGED
@@ -11,15 +11,17 @@ module Vx
|
|
11
11
|
def exec(*args, &block)
|
12
12
|
options = args.last.is_a?(Hash) ? args.pop : {}
|
13
13
|
command = args.first
|
14
|
+
home = options[:home] || "$HOME"
|
14
15
|
|
15
16
|
select_timeout = options.delete(:pool_interval) || Shell.pool_interval
|
16
17
|
timeout = Shell::Timeout.new options.delete(:timeout)
|
17
18
|
read_timeout = Shell::ReadTimeout.new options.delete(:read_timeout)
|
18
19
|
|
20
|
+
prefix = "/usr/bin/env - TERM=ansi USER=$USER HOME=#{home} SHELL=/bin/bash /bin/bash -l"
|
19
21
|
if command
|
20
|
-
command = "
|
22
|
+
command = "#{prefix} -c #{Shellwords.escape command}"
|
21
23
|
else
|
22
|
-
command =
|
24
|
+
command = prefix
|
23
25
|
end
|
24
26
|
|
25
27
|
status = spawn_command_internal(command, options) do |r|
|
data/lib/vx/lib/shell/ssh.rb
CHANGED
@@ -16,15 +16,17 @@ module Vx
|
|
16
16
|
def exec(*args, &block)
|
17
17
|
options = args.last.is_a?(Hash) ? args.pop : {}
|
18
18
|
command = args.first
|
19
|
+
home = options[:home] || "$HOME"
|
19
20
|
|
20
21
|
exit_code = nil
|
21
22
|
timeout = Shell::Timeout.new options.delete(:timeout)
|
22
23
|
read_timeout = Shell::ReadTimeout.new options.delete(:read_timeout)
|
23
24
|
|
25
|
+
prefix = "/usr/bin/env - TERM=ansi USER=$USER HOME=#{home} SHELL=/bin/bash /bin/bash -l"
|
24
26
|
if command
|
25
|
-
command = "
|
27
|
+
command = "#{prefix} -c #{Shellwords.escape command}"
|
26
28
|
else
|
27
|
-
command =
|
29
|
+
command = prefix
|
28
30
|
end
|
29
31
|
|
30
32
|
channel = spawn_channel command, read_timeout, options, &block
|
data/lib/vx/lib/shell/version.rb
CHANGED
data/spec/lib/ssh_spec.rb
CHANGED
@@ -21,9 +21,9 @@ describe Vx::Lib::Shell::SSH, ssh: true do
|
|
21
21
|
)
|
22
22
|
end
|
23
23
|
|
24
|
-
it "run command successfuly
|
25
|
-
code = run_ssh '
|
26
|
-
expect(collected).to match(
|
24
|
+
it "run command successfuly" do
|
25
|
+
code = run_ssh 'echo $HOME'
|
26
|
+
expect(collected).to match(/\/home\//)
|
27
27
|
expect(code).to eq 0
|
28
28
|
end
|
29
29
|
|