Class: VagrantPlugins::Rsync::Cap::EnsureRsync
- Inherits:
-
Object
- Object
- VagrantPlugins::Rsync::Cap::EnsureRsync
- Defined in:
- lib/vagrant-rsync/cap/ensure_rsync.rb
Class Method Summary collapse
- .ensure_rsync(machine, env) ⇒ Object
- .install_rsync!(machine) ⇒ Object
- .rsync_installed?(machine) ⇒ Boolean
Class Method Details
.ensure_rsync(machine, env) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/vagrant-rsync/cap/ensure_rsync.rb', line 8 def self.ensure_rsync(machine, env) return unless machine.communicate.ready? if rsync_installed?(machine) env.ui.info I18n.t('vagrant_rsync.rsync_installed') else env.ui.info I18n.t('vagrant_rsync.installing_rsync') install_rsync!(machine) end end |
.install_rsync!(machine) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/vagrant-rsync/cap/ensure_rsync.rb', line 23 def self.install_rsync!(machine) machine.communicate.tap do |comm| case machine.guest.name when :debian, :ubuntu comm.sudo "apt-get update" comm.sudo "apt-get install rsync -y" when :fedora, :centos, :redhat comm.sudo "yum install rsync -y" when :suse comm.sudo "yast2 -i rsync" when :gentoo comm.sudo "emerge rsync" when :arch comm.sudo "pacman -s rsync" else raise Errors::RsyncNotAvailableError, guest: machine.guest.name end end end |
.rsync_installed?(machine) ⇒ Boolean
19 20 21 |
# File 'lib/vagrant-rsync/cap/ensure_rsync.rb', line 19 def self.rsync_installed?(machine) machine.communicate.execute("rsync --version") rescue false end |