#!/bin/bash
# Kategorie: setup
# Script zum persistenten setzen eines FQDN Hostnamen
# (c) 2026 Stefan Schaefer -- stefan@invis-server.org

# License: GPLv3
# Dieses Programm ist freie Software. Sie können es unter den Bedingungen der
# GNU General Public License, wie von der Free Software Foundation veröffentlicht,
# weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder
# (nach Ihrer Option) jeder späteren Version.

# Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen
# von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite
# Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK.
# Details finden Sie in der GNU General Public License.

# Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem
# Programm erhalten haben. Falls nicht, siehe <http://www.gnu.org/licenses/>.

# interne IP ermitteln
ip=`ip address show intern|tr -s " "|grep "inet "|cut -d "/" -f1 | cut -d " " -f3`

# Aufrufparameter uebernehmen
if (( ${#} == 1 )); then
        fqdn=$1
else
        echo "Usage:"
        echo "----------------------------------------------------------"
        echo "sethostname fqdn"
        echo "Es muss die IP-Adresse der internen Schnittstelle angegeben werden."
        exit 1
fi

# Eintrag in /etc/hosts generieren
shortname=`echo $fqdn |cut -d "." -f1`

# Hostnamen setzen /etc/hostname
hostnamectl hostname $shortname

if [[ `cat /etc/hosts|grep $fqdn` ]]; then
	echo "Es existiert bereits ein entsprechender Eintrag in /etc/hosts, bitte manuell anpassen."
else
	echo -e "$ip\t$fqdn\t$shortname\n" >> /etc/hosts
fi

