95 lines
2.0 KiB
Bash
95 lines
2.0 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
set -e
|
||
|
set -u
|
||
|
|
||
|
os="$1"
|
||
|
net="$2"
|
||
|
rc_libexecdir="$3"
|
||
|
sysconfdir="$4"
|
||
|
|
||
|
init_d_dir="${sysconfdir}/init.d"
|
||
|
leveldir="${sysconfdir}/runlevels"
|
||
|
sysinitdir="${leveldir}/sysinit"
|
||
|
bootdir="${leveldir}/boot"
|
||
|
defaultdir="${leveldir}/default"
|
||
|
nonetworkdir="${leveldir}/nonetwork"
|
||
|
shutdowndir="${leveldir}/shutdown"
|
||
|
|
||
|
sysinit=
|
||
|
case "${os}" in
|
||
|
Linux)
|
||
|
sysinit="${sysinit} cgroups devfs dmesg sysfs"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
boot="bootmisc fsck hostname localmount loopback root swap sysctl urandom"
|
||
|
if [ "${net}" = yes ]; then
|
||
|
boot="${boot} network staticroute"
|
||
|
fi
|
||
|
boot_BSD="hostid newsyslog savecore syslogd"
|
||
|
|
||
|
case "${os}" in
|
||
|
DragonFly)
|
||
|
boot="${boot} ${boot_BSD}"
|
||
|
;;
|
||
|
FreeBSD|GNU-kFreeBSD)
|
||
|
boot="${boot} ${boot_BSD} adjkerntz dumpon modules syscons"
|
||
|
;;
|
||
|
Linux)
|
||
|
boot="${boot} binfmt hwclock keymaps modules mtab procfs
|
||
|
save-keymaps save-termencoding termencoding"
|
||
|
;;
|
||
|
NetBSD)
|
||
|
boot="${boot} ${boot_BSD} devdb swap-blk tys wscons"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
default="local netmount"
|
||
|
|
||
|
nonetwork="local"
|
||
|
|
||
|
shutdown="savecache"
|
||
|
case "${os}" in
|
||
|
Linux)
|
||
|
shutdown="${shutdown} killprocs mount-ro"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
if ! test -d "${DESTDIR}${sysinitdir}"; then
|
||
|
install -d "${DESTDIR}${sysinitdir}"
|
||
|
for x in ${sysinit}; do
|
||
|
ln -snf "${init_d_dir}/$x" "${DESTDIR}${sysinitdir}/$x"
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
if ! test -d "${DESTDIR}${bootdir}"; then
|
||
|
install -d "${DESTDIR}${bootdir}"
|
||
|
for x in ${boot}; do
|
||
|
ln -snf "${init_d_dir}/$x" "${DESTDIR}${bootdir}/$x"
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
if ! test -d "${DESTDIR}${defaultdir}"; then
|
||
|
install -d "${DESTDIR}${defaultdir}"
|
||
|
for x in ${default}; do
|
||
|
ln -snf "${init_d_dir}/$x" "${DESTDIR}${defaultdir}/$x"
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
if ! test -d "${DESTDIR}${nonetworkdir}"; then
|
||
|
install -d "${DESTDIR}${nonetworkdir}"
|
||
|
for x in ${nonetwork}; do
|
||
|
ln -snf "${init_d_dir}/$x" "${DESTDIR}${nonetworkdir}/$x"
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
if ! test -d "${DESTDIR}${shutdowndir}"; then
|
||
|
install -d "${DESTDIR}${shutdowndir}"
|
||
|
for x in ${shutdown}; do
|
||
|
ln -snf "${init_d_dir}/$x" "${DESTDIR}${shutdowndir}/$x"
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
ln -snf "${rc_libexecdir}"/sh/functions.sh "${DESTDIR}/${init_d_dir}"
|