lib/capistrano_extensions/invocation.rb in joekhoobyar-capistrano-extensions-0.0.1 vs lib/capistrano_extensions/invocation.rb in joekhoobyar-capistrano-extensions-0.0.2
- old
+ new
@@ -13,10 +13,12 @@
end
def sudo_su_to(*args, &block)
options = Hash===args.last ? args.pop.dup : {}
options[:shell] = false
- args[0] = "echo \"#{args[0].gsub('"', '\\"')}\" | #{sudo} su - #{fetch(:runner, nil)}"
+ cmd = args[0].gsub(/[$\\`"]/) { |m| "\\#{m}" }
+ args[0] = "echo \"#{cmd}\" | #{sudo} su - #{fetch(:runner, nil)}"
+ #args[0] = "echo \"#{.gsub('"', '\\"')}\" | #{sudo} su - #{fetch(:runner, nil)}"
run *args.push(options), &block
end
end
Capistrano::Configuration.send :include, Invocation
end