Update rm filters to test for path

This commit updates the rm filter for winrm to operate like how rm works
in bash. If a folder doesn't exist, the command returns 0 rather than 1.
This commit is contained in:
Brian Cain 2018-04-30 09:18:09 -07:00
parent c882d888a7
commit 93356d4635
No known key found for this signature in database
GPG Key ID: 43D51080D357A001
3 changed files with 12 additions and 12 deletions

View File

@ -31,9 +31,9 @@ module VagrantPlugins
ret_cmd = ''
if recurse
ret_cmd = "rm \"#{dir}\" -recurse -force"
ret_cmd = "if (Test-Path \"#{dir}\") {Remove-Item \"#{dir}\" -force -recurse}"
else
ret_cmd = "if (Test-Path #{dir}) {Remove-Item #{dir} -force}"
ret_cmd = "if (Test-Path \"#{dir}\") {Remove-Item \"#{dir}\" -force}"
end
return ret_cmd
end

View File

@ -127,10 +127,8 @@ module VagrantPlugins
def create_container(config)
args = container_run_args(config)
@machine.communicate.sudo %[rm -f #{config[:cidfile]}
]
@machine.communicate.sudo %[docker run #{args}
]
@machine.communicate.sudo %[rm -f "#{config[:cidfile]}"]
@machine.communicate.sudo %[docker run #{args}]
sha = Digest::SHA1.hexdigest(args)
container_data_path(config).open("w+") do |f|

View File

@ -54,20 +54,22 @@ describe VagrantPlugins::CommunicatorWinRM::CommandFilter, unit: true do
it 'filters out rm recurse commands' do
expect(subject.filter('rm -Rf /some/dir')).to eq(
"rm \"/some/dir\" -recurse -force")
"if (Test-Path \"/some/dir\") {Remove-Item \"/some/dir\" -force -recurse}")
expect(subject.filter('rm -fr /some/dir')).to eq(
"rm \"/some/dir\" -recurse -force")
"if (Test-Path \"/some/dir\") {Remove-Item \"/some/dir\" -force -recurse}")
expect(subject.filter('rm -r /some/dir')).to eq(
"rm \"/some/dir\" -recurse -force")
"if (Test-Path \"/some/dir\") {Remove-Item \"/some/dir\" -force -recurse}")
expect(subject.filter('rm -r "/some/dir"')).to eq(
"rm \"/some/dir\" -recurse -force")
"if (Test-Path \"/some/dir\") {Remove-Item \"/some/dir\" -force -recurse}")
end
it 'filters out rm commands' do
expect(subject.filter('rm /some/dir')).to eq(
"if (Test-Path /some/dir) {Remove-Item /some/dir -force}")
"if (Test-Path \"/some/dir\") {Remove-Item \"/some/dir\" -force}")
expect(subject.filter('rm -f /some/dir')).to eq(
"if (Test-Path /some/dir) {Remove-Item /some/dir -force}")
"if (Test-Path \"/some/dir\") {Remove-Item \"/some/dir\" -force}")
expect(subject.filter('rm -f "/some/dir"')).to eq(
"if (Test-Path \"/some/dir\") {Remove-Item \"/some/dir\" -force}")
end
it 'filters out mkdir commands' do