#! /bin/bash

old_hostname=$(hostnamectl status | grep 'hostname' | cut -d ":" -f2 | tr -d " ")
new_hostname=$(scw-metadata HOSTNAME)

if [ -z "$new_hostname" ]; then
    echo "Error retrieving new hostname. Aborting..." >&2
    exit 1
fi

if [ "$new_hostname" = "$old_hostname" ]; then
    echo "Name already set. Nothing to do."
    exit 0
fi

if ! [ -s /etc/hosts ]; then
    cp /etc/hosts.default /etc/hosts
    sed -i "s/\bserver\b/$new_hostname/g" /etc/hosts
fi

hostnamectl set-hostname $new_hostname
if grep -q "$old_hostname" /etc/hosts; then
    sed -i "/$old_hostname/s/\b$old_hostname\b/$new_hostname/g" /etc/hosts
else
    echo -e "127.0.0.1\t$new_hostname" >> /etc/hosts
fi
