#!/bin/sh set -u set -e ARGS="$*" echo "Arguments: $ARGS" EXT_UID="${EXT_UID:-999}" EXT_GID="${EXT_GID:-999}" DOCMACHINE_DOCS_ENABLE="${DOCMACHINE_DOCS_ENABLE:-1}" DOCMACHINE_SLIDES_ENABLE="${DOCMACHINE_SLIDES_ENABLE:-1}" gx_workdir_prepare() { # Create missing directories mkdir -p _cache mkdir -p _build if [ "$DOCMACHINE_SLIDES_ENABLE" = "1" ]; then mkdir -p .marp fi mkdir -p /home/appuser } gx_users_prepare() { # Create user with given ID if needed if ! grep -q "^[^:]*:[^:]*:$EXT_UID:" /etc/group ; then groupadd -g "$EXT_GID" appuser fi # Create group with given ID if needed if ! grep -q "^[^:]*:[^:]*:$EXT_UID:" /etc/passwd ; then useradd -r -u "$EXT_UID" -g appuser appuser fi # echo "Setting permissions to $EXT_UID:$EXT_GID" # chown -R "$EXT_UID:$EXT_GID" _cache # chown -R "$EXT_UID:$EXT_GID" _build # chown -R "$EXT_UID:$EXT_GID" .marp # chown -R "$EXT_UID:$EXT_GID" /home/appuser # chown -R "$EXT_UID:$EXT_GID" slides # chown -R "$EXT_UID:$EXT_GID" docs } gx_docs_configure() { # Patch mkdocs configuration if [ -f mkdocs-patch.yml ]; then # patch reference mkdocs with user-provided options yq eval-all '. as $item ireduce ({}; . * $item)' \ mkdocs-source.yml \ mkdocs-patch.yml \ > mkdocs.yml else # use reference mkdocs only (no options) ln -s mkdocs-source.yml mkdocs.yml fi } ## ## Main ## gx_workdir_prepare gx_users_prepare if [ "$DOCMACHINE_DOCS_ENABLE" = "1" ]; then gx_docs_configure fi if [ "$1" = "supershell" ]; then exec bash else # exec gosu "$EXT_UID:$EXT_GID" make "$@" exec make "$@" fi