plugins/guests/smartos/cap/change_host_name.rb in vagrant-unbundled-1.9.5.1 vs plugins/guests/smartos/cap/change_host_name.rb in vagrant-unbundled-1.9.7.1
- old
+ new
@@ -1,15 +1,24 @@
module VagrantPlugins
module GuestSmartos
module Cap
class ChangeHostName
def self.change_host_name(machine, name)
- su_cmd = machine.config.smartos.suexec_cmd
+ sudo = machine.config.smartos.suexec_cmd
- # Only do this if the hostname is not already set
- if !machine.communicate.test("hostname | grep '#{name}'")
- machine.communicate.execute("#{su_cmd} sh -c \"echo '#{name}' > /etc/nodename\"")
- machine.communicate.execute("#{su_cmd} hostname #{name}")
+ machine.communicate.tap do |comm|
+ comm.execute <<-EOH.sub(/^ */, '')
+ if hostname | grep '#{name}' ; then
+ exit 0
+ fi
+
+ if [ -d /usbkey ] && [ "$(zonename)" == "global" ] ; then
+ #{sudo} sed -i '' 's/hostname=.*/hostname=#{name}/' /usbkey/config
+ fi
+
+ #{sudo} echo '#{name}' > /etc/nodename
+ #{sudo} hostname #{name}
+ EOH
end
end
end
end
end