lib/vagrant/guest/freebsd.rb in vagrant-0.9.7 vs lib/vagrant/guest/freebsd.rb in vagrant-1.0.0
- old
+ new
@@ -1,5 +1,7 @@
+require 'vagrant/util/template_renderer'
+
module Vagrant
module Guest
# A general Vagrant system implementation for "freebsd".
#
# Contributed by Kenneth Vestergaard <kvs@binarysolutions.dk>
@@ -55,21 +57,30 @@
vm.channel.sudo("mount #{ip}:#{opts[:hostpath]} #{opts[:guestpath]}")
end
end
def configure_networks(networks)
- # Remove any previous host only network additions to the
- # interface file.
- vm.channel.sudo("sed -e '/^#VAGRANT-BEGIN-HOSTONLY/,/^#VAGRANT-END-HOSTONLY/ d' /etc/rc.conf > /tmp/rc.conf")
- vm.channel.sudo("mv /tmp/rc.conf /etc/rc.conf")
+ # Remove any previous network additions to the configuration file.
+ vm.channel.sudo("sed -i '' -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' /etc/rc.conf")
networks.each do |network|
- entry = "#VAGRANT-BEGIN-HOSTONLY\nifconfig_em#{network[:interface]}=\"inet #{network[:ip]} netmask #{network[:netmask]}\"\n#VAGRANT-END-HOSTONLY\n"
+ entry = TemplateRenderer.render("guests/freebsd/network_#{network[:type]}",
+ :options => network)
vm.channel.upload(StringIO.new(entry), "/tmp/vagrant-network-entry")
-
vm.channel.sudo("su -m root -c 'cat /tmp/vagrant-network-entry >> /etc/rc.conf'")
- vm.channel.sudo("ifconfig em#{network[:interface]} inet #{network[:ip]} netmask #{network[:netmask]}")
+ if network[:type].to_sym == :static
+ vm.channel.sudo("ifconfig em#{network[:interface]} inet #{network[:ip]} netmask #{network[:netmask]}")
+ elsif network[:type].to_sym == :dhcp
+ vm.channel.sudo("dhclient em#{network[:interface]}")
+ end
end
end
+
+ def change_host_name(name)
+ if !vm.channel.test("hostname -f | grep '^#{name}$' || hostname -s | grep '^#{name}$'")
+ vm.channel.sudo("sed -i '' 's/^hostname=.*$/hostname=#{name}/' /etc/rc.conf")
+ vm.channel.sudo("hostname #{name}")
+ end
+ end
end
end
end