2021-10-10 11:21:36 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
2021-11-30 14:02:48 +01:00
|
|
|
set -u
|
|
|
|
set -e
|
|
|
|
|
2021-10-10 11:21:36 +02:00
|
|
|
ARGS="$*"
|
|
|
|
echo "Arguments: $ARGS"
|
|
|
|
|
2025-03-27 10:14:20 +01:00
|
|
|
EXT_UID="${EXT_UID:-999}"
|
|
|
|
EXT_GID="${EXT_GID:-999}"
|
|
|
|
DOCMACHINE_DOCS_ENABLE="${DOCMACHINE_DOCS_ENABLE:-1}"
|
|
|
|
DOCMACHINE_SLIDES_ENABLE="${DOCMACHINE_SLIDES_ENABLE:-1}"
|
2021-11-30 14:02:48 +01:00
|
|
|
|
2025-03-27 10:14:20 +01:00
|
|
|
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
|
|
|
|
}
|
2024-09-30 18:12:26 +02:00
|
|
|
|
2025-03-27 10:14:20 +01:00
|
|
|
gx_users_prepare() {
|
|
|
|
# Create user with given ID if needed
|
|
|
|
if ! grep -q "^[^:]*:[^:]*:$EXT_UID:" /etc/group ; then
|
|
|
|
groupadd -g "$EXT_GID" appuser
|
|
|
|
fi
|
2021-12-21 16:39:51 +01:00
|
|
|
|
2025-03-27 10:14:20 +01:00
|
|
|
# Create group with given ID if needed
|
|
|
|
if ! grep -q "^[^:]*:[^:]*:$EXT_UID:" /etc/passwd ; then
|
|
|
|
useradd -r -u "$EXT_UID" -g appuser appuser
|
|
|
|
fi
|
2021-11-30 14:02:48 +01:00
|
|
|
|
2025-03-27 10:14:20 +01:00
|
|
|
# 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
|
|
|
|
}
|
2021-11-30 21:58:34 +01:00
|
|
|
|
2025-03-27 10:14:20 +01:00
|
|
|
gx_docs_configure() {
|
2022-01-28 18:41:34 +01:00
|
|
|
# Patch mkdocs configuration
|
|
|
|
if [ -f mkdocs-patch.yml ]; then
|
2022-04-26 11:24:59 +02:00
|
|
|
# patch reference mkdocs with user-provided options
|
2022-01-30 17:14:57 +01:00
|
|
|
yq eval-all '. as $item ireduce ({}; . * $item)' \
|
2022-04-26 11:24:59 +02:00
|
|
|
mkdocs-source.yml \
|
|
|
|
mkdocs-patch.yml \
|
|
|
|
> mkdocs.yml
|
2022-01-30 17:14:57 +01:00
|
|
|
else
|
2022-04-26 11:24:59 +02:00
|
|
|
# use reference mkdocs only (no options)
|
|
|
|
ln -s mkdocs-source.yml mkdocs.yml
|
2022-01-28 18:41:34 +01:00
|
|
|
fi
|
2025-03-27 10:14:20 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
##
|
|
|
|
## Main
|
|
|
|
##
|
|
|
|
gx_workdir_prepare
|
|
|
|
gx_users_prepare
|
|
|
|
if [ "$DOCMACHINE_DOCS_ENABLE" = "1" ]; then
|
|
|
|
gx_docs_configure
|
|
|
|
fi
|
2022-01-28 18:41:34 +01:00
|
|
|
|
2024-09-23 01:03:10 +02:00
|
|
|
if [ "$1" = "supershell" ]; then
|
2022-04-26 11:24:59 +02:00
|
|
|
exec bash
|
2021-12-06 11:47:53 +01:00
|
|
|
else
|
2024-09-30 18:12:26 +02:00
|
|
|
# exec gosu "$EXT_UID:$EXT_GID" make "$@"
|
|
|
|
exec make "$@"
|
2021-12-06 11:47:53 +01:00
|
|
|
fi
|