#!/bin/sh PROGRAM=setup-hostname PREFIX= . $PREFIX/lib/libalpine.sh # http://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names valid_hostname() { # check length if [ $(echo "$1" | wc -c) -gt 63 ]; then echo "Hostname '$1' is too long." return 1 fi # check that it only contains valid chars if ! [ -z "$(echo $1 | sed 's/[0-9a-z-]//g')" ]; then echo "Hostname must only contain letters (a-z), digits (0-9) or -" return 1 fi # must not start with - case "$1" in -*) echo "Hostname must not start with a '-'"; return 1;; esac return 0 } while true; do HOST=`hostname` echon "Enter system hostname (short form, e.g. 'foo') [$HOST]: " default_read HOST `hostname` if valid_hostname "$HOST"; then break fi done mkdir -p "$ROOT/etc" echo "$HOST" > "$ROOT/etc/hostname"