97 lines
2.5 KiB
Plaintext
97 lines
2.5 KiB
Plaintext
maybe_create_devs ()
|
|
{
|
|
local DEVDIR=/dev
|
|
# Check for ${DEVDIR} directory
|
|
if [ -e "${DEVDIR}" -a ! -d "${DEVDIR}" ]
|
|
then
|
|
# No mercy. Try to remove.
|
|
rm -f "${DEVDIR}"
|
|
if [ -e "${DEVDIR}" -a ! -d "${DEVDIR}" ]
|
|
then
|
|
echo
|
|
echo "${DEVDIR} is existant but not a directory."
|
|
echo "Please fix that manually, otherwise you WILL get problems."
|
|
echo
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Create it if necessary
|
|
mkdir -m 755 "${DEVDIR}" 2> /dev/null
|
|
if [ ! -e "${DEVDIR}" ]
|
|
then
|
|
echo
|
|
echo "Creating ${DEVDIR} directory failed."
|
|
echo "Please fix that manually, otherwise you WILL get problems."
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
# Check for ${DEVDIR}/shm directory (for POSIX semaphores and POSIX shared mem)
|
|
if [ -e "${DEVDIR}/shm" -a ! -d "${DEVDIR}/shm" ]
|
|
then
|
|
# No mercy. Try to remove.
|
|
rm -f "${DEVDIR}/shm"
|
|
if [ -e "${DEVDIR}/shm" -a ! -d "${DEVDIR}/shm" ]
|
|
then
|
|
echo
|
|
echo "${DEVDIR}/shm is existant but not a directory."
|
|
echo "POSIX semaphores and POSIX shared memory will not work"
|
|
echo
|
|
fi
|
|
fi
|
|
|
|
# Create it if necessary
|
|
if [ ! -e "${DEVDIR}/shm" ]
|
|
then
|
|
mkdir -m 1777 "${DEVDIR}/shm"
|
|
if [ ! -e "${DEVDIR}/shm" ]
|
|
then
|
|
echo
|
|
echo "Creating ${DEVDIR}/shm directory failed."
|
|
echo "POSIX semaphores and POSIX shared memory will not work"
|
|
echo
|
|
fi
|
|
else
|
|
chmod 1777 "${DEVDIR}/shm"
|
|
fi
|
|
|
|
# Check for ${DEVDIR}/mqueue directory (for POSIX message queues)
|
|
if [ -e "${DEVDIR}/mqueue" -a ! -d "${DEVDIR}/mqueue" ]
|
|
then
|
|
# No mercy. Try to remove.
|
|
rm -f "${DEVDIR}/mqueue"
|
|
if [ -e "${DEVDIR}/mqueue" -a ! -d "${DEVDIR}/mqueue" ]
|
|
then
|
|
echo
|
|
echo "${DEVDIR}/mqueue is existant but not a directory."
|
|
echo "POSIX message queues will not work"
|
|
echo
|
|
fi
|
|
fi
|
|
|
|
# Create it if necessary
|
|
if [ ! -e "${DEVDIR}/mqueue" ]
|
|
then
|
|
mkdir -m 1777 "${DEVDIR}/mqueue"
|
|
if [ ! -e "${DEVDIR}/mqueue" ]
|
|
then
|
|
echo
|
|
echo "Creating ${DEVDIR}/mqueue directory failed."
|
|
echo "POSIX message queues will not work"
|
|
echo
|
|
fi
|
|
else
|
|
chmod 1777 "${DEVDIR}/mqueue"
|
|
fi
|
|
|
|
# Install /dev/fd, /dev/std{in,out,err}. The bash builtin test was compiled
|
|
# to assume these exist, so use /bin/test to really check.
|
|
/usr/bin/test -h /dev/stdin || ln -sf /proc/self/fd/0 /dev/stdin
|
|
/usr/bin/test -h /dev/stdout || ln -sf /proc/self/fd/1 /dev/stdout
|
|
/usr/bin/test -h /dev/stderr || ln -sf /proc/self/fd/2 /dev/stderr
|
|
/usr/bin/test -h /dev/fd || ln -sf /proc/self/fd /dev/fd
|
|
}
|
|
|
|
maybe_create_devs
|