plugins/guests/arch/cap/change_host_name.rb in vagrant-unbundled-1.8.4.2 vs plugins/guests/arch/cap/change_host_name.rb in vagrant-unbundled-1.8.5.1
- old
+ new
@@ -3,22 +3,25 @@
module Cap
class ChangeHostName
def self.change_host_name(machine, name)
comm = machine.communicate
- if !comm.test("hostname | grep -w '#{name}'")
+ if !comm.test("hostname -f | grep '^#{name}$'", sudo: false)
basename = name.split(".", 2)[0]
- comm.sudo <<-EOH
-hostnamectl set-hostname '#{name}'
+ comm.sudo <<-EOH.gsub(/^ {14}/, "")
+ set -e
-# Remove comments and blank lines from /etc/hosts
-sed -i'' -e 's/#.*$//' -e '/^$/d' /etc/hosts
+ # Set hostname
+ hostnamectl set-hostname '#{basename}'
-# Prepend ourselves to /etc/hosts
-grep -w '#{name}' /etc/hosts || {
- sed -i'' '1i 127.0.0.1\\t#{name}\\t#{basename}' /etc/hosts
-}
-EOH
+ # Remove comments and blank lines from /etc/hosts
+ sed -i'' -e 's/#.*$//' -e '/^$/d' /etc/hosts
+
+ # Prepend ourselves to /etc/hosts
+ grep -w '#{name}' /etc/hosts || {
+ sed -i'' '1i 127.0.0.1\\t#{name}\\t#{basename}' /etc/hosts
+ }
+ EOH
end
end
end
end
end