sshkit-interactive 0.2.2 → 0.2.3

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
  SHA1:
3
- metadata.gz: aa21fa52487a0259580739a067b40bc6e93271bd
4
- data.tar.gz: aed020db6d9d2237c2e4ab4abf92f457971df2ce
3
+ metadata.gz: 85a367dc3b5b858208966b608522f5cfa5437184
4
+ data.tar.gz: dbade21d2bfb2b0e4e438ccff779f4d998f1d5cc
5
5
  SHA512:
6
- metadata.gz: b1aabaaae24517f83f4fb6da0bbc1ba6a7c3daabc00c179f93b6fc8dada732ef9c56e0ffa0bd331713f9a5270b21d5bcf64cf332c8cab636ba70ea2f02986390
7
- data.tar.gz: 360de74bbd40174aaa3a19c0aab5258fb037e4ecaf90925c8678ca0b043d9ff92bcfa4be7a02a83086f0046bb09159f301ff99062c75c7e1b17ed3b38905a963
6
+ metadata.gz: aa2aedd29c8f938e711165aacee63d03869e523bbe39950d99aa189fc210a1d567fabe882d8a2270dae8f1b90e04f332f2d8e3c43bc9b5f141fba431a08d1315
7
+ data.tar.gz: 41adf32334b6ea3abe35eaa6a52a2970547366af9821fbd6a69c884b9d37a4039511d18e22073f5c833fc490cc7bd7c11a331cc7e5b9e089e6e773e17a0f3a94
@@ -3,11 +3,11 @@ sudo: false
3
3
  language: ruby
4
4
 
5
5
  rvm:
6
- - ruby-2.2.6
7
- - ruby-2.3.3
8
- - ruby-2.4.0
6
+ - ruby-2.2.7
7
+ - ruby-2.3.4
8
+ - ruby-2.4.1
9
9
  - jruby-1.7
10
- - jruby-9.1.7.0
10
+ - jruby-9.1.12.0
11
11
 
12
12
  gemfile:
13
13
  - spec/gemfiles/net-ssh2_8.gemfile
@@ -31,7 +31,4 @@ matrix:
31
31
  - rvm: jruby-1.7
32
32
  gemfile: spec/gemfiles/net-ssh4_1.gemfile
33
33
 
34
- before_install:
35
- - gem install bundler -v '~> 1.14.0'
36
-
37
34
  script: bundle exec rake spec
@@ -1,7 +1,15 @@
1
1
  # Change Log
2
2
 
3
- ## 0.2.2 (2017-08-07)
3
+ ## 0.2.3 (2017-09-03)
4
+ ### Fix
5
+ - [fix sudo with new variable expansion](https://github.com/afeld/sshkit-interactive/pull/18)
6
+ - [fix Travis CI builds](https://github.com/afeld/sshkit-interactive/pull/19)
7
+
4
8
  ### Change
9
+ - bump rspec version to 3.6.x
10
+
11
+ ## 0.2.2 (2017-08-07)
12
+ ### Fix
5
13
  - [fix incorrect variable expansion](https://github.com/afeld/sshkit-interactive/pull/16)
6
14
 
7
15
  ## 0.2.1 (2017-05-01)
@@ -42,7 +42,7 @@ module SSHKit
42
42
  :ssh,
43
43
  *ssh_cmd_args,
44
44
  host.hostname,
45
- %Q{'$SHELL -l -c "#{remote_command.to_command}"'}
45
+ command
46
46
  ].reject(&:empty?).join(' ')
47
47
  end
48
48
 
@@ -84,6 +84,12 @@ module SSHKit
84
84
  def proxy_command
85
85
  proxy.command_line_template
86
86
  end
87
+
88
+ def command
89
+ cmd = remote_command.to_command.gsub("'", "\\\"") # replace single quotes with double quotes
90
+
91
+ %Q{'$SHELL -l -c \"#{cmd}\"'}
92
+ end
87
93
  end
88
94
  end
89
95
  end
@@ -1,5 +1,5 @@
1
1
  module SSHKit
2
2
  module Interactive
3
- VERSION = '0.2.2'
3
+ VERSION = '0.2.3'
4
4
  end
5
5
  end
@@ -4,20 +4,22 @@ describe SSHKit::Interactive::Backend do
4
4
  let(:backend) { SSHKit::Interactive::Backend.new(host) }
5
5
 
6
6
  it 'does a system call with the SSH command' do
7
- expect_system_call('ssh -t -A example.com "\\$SHELL -l -c \\"/usr/bin/env ls\\""')
7
+ expect_system_call('ssh -t -A example.com \'$SHELL -l -c "/usr/bin/env ls"\'')
8
8
  backend.execute('ls')
9
9
  end
10
10
 
11
11
  it 'respects the specified directory' do
12
12
  backend.within('/var/log') do
13
- expect_system_call('ssh -t -A example.com "\\$SHELL -l -c \\"cd /var/log && /usr/bin/env ls\\""')
13
+ expect_system_call('ssh -t -A example.com \'$SHELL -l -c "cd /var/log && /usr/bin/env ls"\'')
14
+
14
15
  backend.execute('ls')
15
16
  end
16
17
  end
17
18
 
18
19
  it 'respects the specified user' do
19
20
  backend.as('deployer') do
20
- expect_system_call('ssh -t -A example.com "\\$SHELL -l -c \\"sudo -u deployer -- sh -c \'/usr/bin/env ls\'\\""')
21
+ expect_system_call('ssh -t -A example.com \'$SHELL -l -c "sudo -u deployer -- sh -c \\"/usr/bin/env ls\\""\'')
22
+
21
23
  backend.execute('ls')
22
24
  end
23
25
  end
@@ -32,7 +34,8 @@ describe SSHKit::Interactive::Backend do
32
34
 
33
35
  it 'respects the specified env' do
34
36
  backend.with(foo: :bar) do
35
- expect_system_call('ssh -t -A example.com "\\$SHELL -l -c \\"( export FOO="bar" ; /usr/bin/env ls )\\""')
37
+ expect_system_call('ssh -t -A example.com \'$SHELL -l -c "( export FOO="bar" ; /usr/bin/env ls )"\'')
38
+
36
39
  backend.execute('ls')
37
40
  end
38
41
  end
@@ -85,20 +85,20 @@ describe SSHKit::Interactive::Command do
85
85
  cmd = SSHKit::Interactive::Command.new(host, command)
86
86
 
87
87
  expect(cmd).to receive(:ssh_cmd_args).and_return(%w(-A -B -C))
88
- expect(cmd.to_s).to eq('ssh -A -B -C example.com "\\$SHELL -l -c \\"/usr/bin/env ls\\""')
88
+ expect(cmd.to_s).to eq('ssh -A -B -C example.com \'$SHELL -l -c "/usr/bin/env ls"\'')
89
89
  end
90
90
 
91
91
  it 'excludes options if they\'re blank' do
92
92
  cmd = SSHKit::Interactive::Command.new(host, command)
93
93
 
94
94
  expect(cmd).to receive(:ssh_cmd_args).and_return([])
95
- expect(cmd.to_s).to eq('ssh example.com "\\$SHELL -l -c \\"/usr/bin/env ls\\""')
95
+ expect(cmd.to_s).to eq('ssh example.com \'$SHELL -l -c "/usr/bin/env ls"\'')
96
96
  end
97
97
 
98
98
  it 'accepts a remote command' do
99
99
  cmd = SSHKit::Interactive::Command.new(host, command)
100
100
 
101
- expect(cmd.to_s).to eq('ssh -t -A example.com "\\$SHELL -l -c \\"/usr/bin/env ls\\""')
101
+ expect(cmd.to_s).to eq('ssh -t -A example.com \'$SHELL -l -c "/usr/bin/env ls"\'')
102
102
  end
103
103
  end
104
104
  end
@@ -5,7 +5,7 @@ describe SSHKit::Interactive::DSL do
5
5
  let(:host) { SSHKit::Host.new('example.com') }
6
6
 
7
7
  it 'will execute interactively' do
8
- expect_system_call('ssh -t -A example.com "\\$SHELL -l -c \\"/usr/bin/env ls\\""')
8
+ expect_system_call('ssh -t -A example.com \'$SHELL -l -c "/usr/bin/env ls"\'')
9
9
 
10
10
  run_interactively host do
11
11
  execute(:ls)
@@ -19,7 +19,6 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.add_dependency 'sshkit', '~> 1.12'
21
21
 
22
- spec.add_development_dependency 'bundler', '~> 1.14.0'
23
- spec.add_development_dependency 'rake', '~> 12.0.0'
24
- spec.add_development_dependency 'rspec', '~> 3.5.0'
22
+ spec.add_development_dependency 'rake', '~> 12.0.0'
23
+ spec.add_development_dependency 'rspec', '~> 3.6.0'
25
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sshkit-interactive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aidan Feldman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-07 00:00:00.000000000 Z
11
+ date: 2017-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sshkit
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.12'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 1.14.0
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 1.14.0
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: rake
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +44,14 @@ dependencies:
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: 3.5.0
47
+ version: 3.6.0
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: 3.5.0
54
+ version: 3.6.0
69
55
  description:
70
56
  email:
71
57
  - aidan.feldman@gmail.com
@@ -118,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
104
  version: '0'
119
105
  requirements: []
120
106
  rubyforge_project:
121
- rubygems_version: 2.6.11
107
+ rubygems_version: 2.6.12
122
108
  signing_key:
123
109
  specification_version: 4
124
110
  summary: An SSHKit backend that allows you to execute interactive commands on your