Escape identify file path

This commit is contained in:
Seth Vargo 2015-11-23 20:00:12 -05:00
parent 2a6db90afd
commit 8f420837a4
2 changed files with 15 additions and 7 deletions

View File

@ -6,11 +6,7 @@ Host <%= host_key %>
StrictHostKeyChecking no
PasswordAuthentication no
<% private_key_path.each do |path| %>
<% if path.include?(" ") -%>
IdentityFile "<%= path %>"
<% else -%>
IdentityFile <%= path %>
<% end -%>
IdentityFile <%= path.inspect %>
<% end -%>
IdentitiesOnly yes
LogLevel FATAL

View File

@ -92,8 +92,8 @@ Host #{machine.name}
subject.execute
expect(output).to include("IdentityFile foo")
expect(output).to include("IdentityFile bar")
expect(output).to include('IdentityFile "foo"')
expect(output).to include('IdentityFile "bar"')
end
it "puts quotes around an identityfile path if it has a space" do
@ -107,5 +107,17 @@ Host #{machine.name}
expect(output).to include('IdentityFile "with a space"')
end
it "escapes special characters" do
allow(machine).to receive(:ssh_info) { ssh_info.merge(private_key_path: ['/private/tmp/test of "vagrant" plugin/']) }
output = ""
allow(subject).to receive(:safe_puts) do |data|
output += data if data
end
subject.execute
expect(output).to include('"/private/tmp/test of \"vagrant\" plugin/"')
end
end
end