gluon-packages/admin/pretty-hostname/files/pretty-hostname

33 lines
791 B
Bash
Executable File

#!/bin/sh
case $# in
0)
uci -q get 'system.@system[0].pretty_hostname' || uci get 'system.@system[0].hostname'
;;
1)
pretty_hostname="$1"
# Remove invalid characters and leading/trailing spaces
hostname="$(echo -n "$pretty_hostname" | sed -r -e 's/[^a-zA-Z0-9-]//g' -e 's/-+/-/g' -e 's/^-//')"
hostname="${hostname:0:63}"
hostname="$(echo -n "$hostname" | sed -e 's/-$//')"
if [ -z "$hostname" ]; then
hostname='localhost'
fi
if [ "$hostname" = "$pretty_hostname" ]; then
uci -q delete "system.@system[0].pretty_hostname"
else
uci set "system.@system[0].pretty_hostname=$pretty_hostname"
fi
uci set "system.@system[0].hostname=$hostname"
uci commit system
echo "$hostname" > /proc/sys/kernel/hostname
;;
*)
echo 'Usage: pretty-hostname [ hostname ]'
exit 1
esac