diff --git a/plugins/guests/debian/guest.rb b/plugins/guests/debian/guest.rb index a7f3d65de..be08b3605 100644 --- a/plugins/guests/debian/guest.rb +++ b/plugins/guests/debian/guest.rb @@ -2,7 +2,7 @@ module VagrantPlugins module GuestDebian class Guest < Vagrant.plugin("2", :guest) def detect?(machine) - machine.communicate.test("cat /etc/issue | grep 'Debian'") + machine.communicate.test("cat /etc/issue | grep 'Debian' | grep -v '8'") end end end diff --git a/plugins/guests/debian8/cap/halt.rb b/plugins/guests/debian8/cap/halt.rb new file mode 100644 index 000000000..932281347 --- /dev/null +++ b/plugins/guests/debian8/cap/halt.rb @@ -0,0 +1,16 @@ +module VagrantPlugins + module GuestDebian8 + module Cap + class Halt + def self.halt(machine) + begin + machine.communicate.sudo("shutdown -h -H") + rescue IOError + # Do nothing, because it probably means the machine shut down + # and SSH connection was lost. + end + end + end + end + end +end diff --git a/plugins/guests/debian8/guest.rb b/plugins/guests/debian8/guest.rb new file mode 100644 index 000000000..ec95e9e85 --- /dev/null +++ b/plugins/guests/debian8/guest.rb @@ -0,0 +1,9 @@ +module VagrantPlugins + module GuestDebian8 + class Guest < Vagrant.plugin("2", :guest) + def detect?(machine) + machine.communicate.test("cat /etc/issue | grep 'Debian' | grep '8'") + end + end + end +end diff --git a/plugins/guests/debian8/plugin.rb b/plugins/guests/debian8/plugin.rb new file mode 100644 index 000000000..1f566f5fa --- /dev/null +++ b/plugins/guests/debian8/plugin.rb @@ -0,0 +1,21 @@ +require "vagrant" + +module VagrantPlugins + module GuestDebian8 + class Plugin < Vagrant.plugin("2") + name "Debian Jessie guest" + description "Debian Jessie guest support." + + guest("debian8", "debian") do + require File.expand_path("../guest", __FILE__) + Guest + end + + guest_capability("debian8", "halt") do + require_relative "cap/halt" + Cap::Halt + end + + end + end +end