rhc 1.33.4 → 1.34.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.
@@ -15,6 +15,10 @@ module RHC::Commands
15
15
 
16
16
  You may run a specific SSH command by passing one or more arguments, or use a
17
17
  different SSH executable or pass options to SSH with the '--ssh' option.
18
+
19
+ To use the '--ssh' flag with an SSH executable path containing a space, wrap
20
+ the executable path with double quotes:
21
+ --ssh '"C:\\path with spaces\\ssh"'
18
22
  DESC
19
23
  syntax "[--ssh path_to_ssh_executable] [--gears] [<app> --] <command>"
20
24
  takes_application :argument => true
@@ -42,16 +46,7 @@ module RHC::Commands
42
46
  command_line = [RHC::Helpers.split_path(ssh), ('-vv' if debug?), rest_app.ssh_string.to_s, command].flatten.compact
43
47
 
44
48
  debug "Invoking Kernel.exec with #{command_line.inspect}"
45
- begin
46
- Kernel.send(:exec, *command_line)
47
- rescue Errno::ENOENT
48
- debug "SSH executable #{ssh.inspect} not found, splitting and trying again..."
49
-
50
- command_line = [ssh.chomp('"').reverse.chomp('"').reverse.split(' '), ('-vv' if debug?), rest_app.ssh_string.to_s, command].flatten.compact
51
- debug "Invoking Kernel.exec with #{command_line.inspect}"
52
-
53
- Kernel.send(:exec, *command_line)
54
- end
49
+ Kernel.send(:exec, *command_line)
55
50
  end
56
51
  end
57
52
 
@@ -475,10 +475,10 @@ module RHC
475
475
  raise RHC::InvalidSSHExecutableException.new("No system SSH available. Please use the --ssh option to specify the path to your SSH executable, or install SSH.#{windows? ? ' We recommend this free application: Git for Windows - a basic git command line and GUI client http://msysgit.github.io/.' : ''}") unless ssh_cmd or has_ssh?
476
476
  end
477
477
  else
478
- bin_path = path.split(' ').first
478
+ bin_path = split_path(path)[0]
479
479
  raise RHC::InvalidSSHExecutableException.new("SSH executable '#{bin_path}' does not exist.") unless File.exist?(bin_path) or File.exist?(path) or exe?(bin_path)
480
480
  raise RHC::InvalidSSHExecutableException.new("SSH executable '#{bin_path}' is not executable.") unless File.executable?(path) or File.executable?(bin_path) or exe?(bin_path)
481
- path =~ / / ? '"' + path + '"' : path
481
+ path
482
482
  end
483
483
  end
484
484
 
@@ -171,8 +171,8 @@ describe RHC::Commands::Ssh do
171
171
  end
172
172
  end
173
173
 
174
- describe 'app ssh custom ssh with spaces' do
175
- let(:arguments) { ['app', 'ssh', 'app1', '--ssh', '/path/to/ssh --with_custom_flag'] }
174
+ describe 'app ssh custom ssh with spaces and arguments' do
175
+ let(:arguments) { ['app', 'ssh', 'app1', '--ssh', '"/path/to /ssh" --with_custom_flag'] }
176
176
  context 'when custom ssh does not exist as a path' do
177
177
  before(:each) do
178
178
  @domain = rest_client.add_domain("mockdomain")
@@ -181,8 +181,7 @@ describe RHC::Commands::Ssh do
181
181
  File.should_receive(:exist?).at_least(1).and_return(true)
182
182
  File.should_receive(:executable?).at_least(1).and_return(true)
183
183
  subject.class.any_instance.stub(:discover_git_executable).and_return('git')
184
- Kernel.should_receive(:exec).with('/path/to/ssh --with_custom_flag', "fakeuuidfortestsapp1@127.0.0.1").once.times.and_raise(Errno::ENOENT)
185
- Kernel.should_receive(:exec).with('/path/to/ssh', '--with_custom_flag', "fakeuuidfortestsapp1@127.0.0.1").once.times.and_return(0)
184
+ Kernel.should_receive(:exec).with("/path/to /ssh", '--with_custom_flag', "fakeuuidfortestsapp1@127.0.0.1").once.times.and_return(0)
186
185
  end
187
186
  it { expect { run }.to exit_with_code(0) }
188
187
  end
metadata CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 33
9
- - 4
10
- version: 1.33.4
8
+ - 34
9
+ - 2
10
+ version: 1.34.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Red Hat
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2014-12-04 00:00:00 Z
18
+ date: 2015-01-17 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: net-ssh