mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-12-24 10:34:17 +00:00
94 lines
3.1 KiB
Bash
Executable File
94 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
GREEN_COLOR="\033[0;32m"
|
|
RED_COLOR="\033[0;31m"
|
|
NO_COLOR="\033[0m"
|
|
CHECK_MARK="\xE2\x9C\x93"
|
|
CROSS_MARK="\xE2\x9D\x8C"
|
|
|
|
|
|
if [[ "${NOPAQUE_UID}" == "0" ]]; then
|
|
echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
|
|
echo "Running as root is not allowed"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
echo "Set container UID and GIDs to match the host system..."
|
|
|
|
|
|
##############################################################################
|
|
# docker GID #
|
|
##############################################################################
|
|
if [[ "${DOCKER_GID}" == "$(getent group docker | cut -d: -f3)" ]]; then
|
|
echo -n "- docker GID is already matching..."
|
|
echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
|
|
else
|
|
echo -n "- Updating docker GID ($(getent group docker | cut -d: -f3) -> ${DOCKER_GID})... "
|
|
groupmod --gid "${DOCKER_GID}" docker > /dev/null
|
|
if [[ "${?}" == "0" ]]; then
|
|
echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
|
|
else
|
|
echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
##############################################################################
|
|
# nopaque GID #
|
|
##############################################################################
|
|
if [[ "${NOPAQUE_GID}" == "$(id -g nopaque)" ]]; then
|
|
echo -n "- nopaque GID is already matching..."
|
|
echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
|
|
else
|
|
echo -n "- Updating nopaque GID ($(id -g nopaque) -> ${NOPAQUE_GID})... "
|
|
groupmod --gid "${NOPAQUE_GID}" nopaque > /dev/null
|
|
if [[ "${?}" == "0" ]]; then
|
|
HAS_NOPAQUE_GID_CHANGED=true
|
|
echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
|
|
else
|
|
echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -n "- Updating nopaque directory group... "
|
|
chown -R :nopaque /home/nopaque
|
|
if [[ "${?}" == "0" ]]; then
|
|
echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
|
|
else
|
|
echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
##############################################################################
|
|
# nopaque UID #
|
|
##############################################################################
|
|
if [[ "${NOPAQUE_UID}" == "$(id -u nopaque)" ]]; then
|
|
echo -n "- nopaque UID is already matching..."
|
|
echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
|
|
else
|
|
echo -n "- Updating nopaque UID ($(id -u nopaque) -> ${NOPAQUE_UID})... "
|
|
usermod --uid "${NOPAQUE_UID}" nopaque > /dev/null
|
|
if [[ "${?}" == "0" ]]; then
|
|
echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
|
|
else
|
|
echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -n "- Updating nopaque directory owner... "
|
|
chown -R nopaque /home/nopaque
|
|
if [[ "${?}" == "0" ]]; then
|
|
echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
|
|
else
|
|
echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
exec gosu nopaque ./boot.sh ${@}
|