27 lines
572 B
Bash
27 lines
572 B
Bash
#!/bin/bash -e
|
|
|
|
HOSTNAME="$(echo "$1" | tr '[:upper:]' '[:lower:]')"
|
|
|
|
if [ "$HOSTNAME" == "" ]; then
|
|
echo "Usage: $0 <hostname>"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$HOSTNAME" == "localhost" ]; then
|
|
echo "Cannot set hostname to 'localhost'"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$HOSTNAME" =~ ^.*\.local$ ]; then
|
|
echo "Hostname cannot end with '.local'"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! "$HOSTNAME" =~ ^[a-zA-Z][a-zA-Z0-9-]{0,62}$ ]]; then
|
|
echo "Invalid hostname '$HOSTNAME'"
|
|
exit 1
|
|
fi
|
|
|
|
sed -i "s/^127.0.1.1\([[:space:]]*\).*$/127.0.1.1\1$HOSTNAME/" /etc/hosts
|
|
echo "$HOSTNAME" > /etc/hostname
|