Matt Behrens ef44f19601 drop -r flag from xargs on OS X
OS X's `xargs` does not support the `-r` flag (which means "do not
execute the command even once if there are no arguments"), but
behaves by default as if it was specified.

You can verify this yourself with this test:

    $ touch zero-length-file
    $ xargs echo <zero-length-file

If `echo` is executed, you will see a blank line.  If it is not
executed (i.e. `-r` is specified or the behavior is implied) then
you will see no blank line.
2014-05-25 18:42:40 -04:00

32 lines
808 B
Ruby

module VagrantPlugins
module GuestDarwin
module Cap
class RSync
def self.rsync_installed(machine)
machine.communicate.test("which rsync")
end
def self.rsync_command(machine)
"sudo rsync"
end
def self.rsync_pre(machine, opts)
machine.communicate.tap do |comm|
comm.sudo("mkdir -p '#{opts[:guestpath]}'")
end
end
def self.rsync_post(machine, opts)
if opts.has_key?(:chown) && !opts[:chown]
return
end
machine.communicate.sudo(
"find '#{opts[:guestpath]}' '(' ! -user #{opts[:owner]} -or ! -group #{opts[:group]} ')' -print0 | " +
"xargs -0 chown #{opts[:owner]}:#{opts[:group]}")
end
end
end
end
end