diff options
-rw-r--r-- | install-lilo.sh | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/install-lilo.sh b/install-lilo.sh new file mode 100644 index 0000000..3ce2a16 --- /dev/null +++ b/install-lilo.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +set -u + +main() +{ + local boot= + + [ "x$(id -u)" = 'x0' ] || error 'Must be run as the superuser' + + if [ ${?} -ne 1 ]; then + usage >&2 + exit 1 + fi + boot="${1}" + + [ -e "${boot}" ] || error 'Boot device not found' + [ -e /etc/lilo.conf.in ] || \ + error '/etc/lilo.conf: No such file or directory' + [ -e /etc/lilo.conf ] && error '/etc/lilo.conf exists' + + sed "s|@BOOT@|${boot}|g" /etc/lilo.conf.in >/etc/lilo.conf + /sbin/lilo + rm /etc/lilo.conf +} + +usage() +{ + printf 'Usage: install-lilo <boot>\n' +} + +error() +{ + local fmt="${1}" + shift 1 + + printf "install-lilo: Error: ${fmt}\n" "${@}" + exit 2 +} + +main "${@}" |