Merge pull request #11614 from jbonhag/fixup/haiku-rsync-install

Fix #9552: Install rsync on Haiku guests
This commit is contained in:
Jeff Bonhag 2020-07-23 16:53:06 -04:00 committed by GitHub
commit a82a785651
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 80 additions and 0 deletions

View File

@ -0,0 +1,19 @@
module VagrantPlugins
module GuestHaiku
module Cap
class RSync
def self.rsync_installed(machine)
machine.communicate.test("test -f /bin/rsync")
end
def self.rsync_install(machine)
machine.communicate.execute("pkgman install -y rsync")
end
def self.rsync_command(machine)
"rsync -zz"
end
end
end
end
end

View File

@ -30,6 +30,21 @@ module VagrantPlugins
require_relative "cap/remove_public_key"
Cap::RemovePublicKey
end
guest_capability(:haiku, :rsync_install) do
require_relative "cap/rsync"
Cap::RSync
end
guest_capability(:haiku, :rsync_installed) do
require_relative "cap/rsync"
Cap::RSync
end
guest_capability(:haiku, :rsync_command) do
require_relative "cap/rsync"
Cap::RSync
end
end
end
end

View File

@ -0,0 +1,46 @@
require_relative "../../../../base"
describe "VagrantPlugins::GuestHaiku::Cap::RSync" do
let(:caps) do
VagrantPlugins::GuestHaiku::Plugin
.components
.guest_capabilities[:haiku]
end
let(:machine) { double("machine") }
let(:comm) { VagrantTests::DummyCommunicator::Communicator.new(machine) }
before do
allow(machine).to receive(:communicate).and_return(comm)
end
after do
comm.verify_expectations!
end
describe ".rsync_install" do
let(:cap) { caps.get(:rsync_install) }
it "installs rsync" do
comm.expect_command("pkgman install -y rsync")
cap.rsync_install(machine)
end
end
describe ".rsync_installed" do
let(:cap) { caps.get(:rsync_installed) }
it "checks if rsync is installed" do
comm.expect_command("test -f /bin/rsync")
cap.rsync_installed(machine)
end
end
describe ".rsync_command" do
let(:cap) { caps.get(:rsync_command) }
it "defaults to 'rsync -zz'" do
expect(cap.rsync_command(machine)).to eq("rsync -zz")
end
end
end