# rc.lib -- common functions for rc.boot and rc.shutdown # shellcheck disable=1090 export PATH=$PATH:/usr/local/bin:/usr/bin out() { printf '\033[1;36m-> \033[39m%s\033[m\n' "$@" ;} err() { printf '\033[1;31m!> \033[39m%s\033[m\n' "$@" ;} shell() { err "Dropping to shell, type 'exit' to continue the boot process." sh -l } run_hook() { out "Running '$1' hooks..." for hook in "/etc/init/"*".$1" "/usr/lib/init/hooks/"*".$1"; do [ -f "$hook" ] || continue out "Running '$hook'..." . "$hook" done } random() { seed=/var/random.seed case "$1" in load) out "Seeding random..." [ -f "$seed" ] || { out "Generating entropy, this might take a while..." dd count=1 bs=512 if=/dev/random of="$seed" 2>/dev/null } cat "$seed" > /dev/urandom ;; save) mkdir -p "${seed%/*}" out "Saving random seed..." dd count=1 bs=512 if=/dev/urandom of="$seed" 2>/dev/null ;; esac }