#!/bin/bash

# If no argument → just show hostname
if [ -z "$1" ]; then
    echo "Current hostname:"
    hostname
    exit 0
fi

NEW_HOSTNAME=$1

echo "Setting hostname to: $NEW_HOSTNAME"

# Use hostnamectl if available (modern systems)
if command -v hostnamectl >/dev/null 2>&1; then
    hostnamectl set-hostname "$NEW_HOSTNAME"
else
    # Fallback for older systems
    hostname "$NEW_HOSTNAME"
    echo "$NEW_HOSTNAME" > /etc/hostname
fi

# Update /etc/hosts safely
if grep -q "127.0.1.1" /etc/hosts; then
    sed -i "s/127.0.1.1.*/127.0.1.1 $NEW_HOSTNAME/" /etc/hosts
fi

echo "Hostname successfully set!"
echo "Current hostname:"
hostname
