From 5515ff2d18f8895b165eb0b7d6c1048b7b0eaa4f Mon Sep 17 00:00:00 2001 From: "Glenn Y. Rolland" Date: Fri, 28 Jan 2022 18:41:34 +0100 Subject: [PATCH] feat: handle mkdocs patching --- docker/Dockerfile | 6 ++++++ docker/entrypoint.sh | 10 ++++++++++ mkdocs.yml => mkdocs-source.yml | 0 scripts/gx-teaching | 11 ++++++++--- 4 files changed, 24 insertions(+), 3 deletions(-) rename mkdocs.yml => mkdocs-source.yml (100%) diff --git a/docker/Dockerfile b/docker/Dockerfile index d9d7291..a57fe64 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -21,6 +21,12 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ && truncate -s 0 /var/log/*log +# External tools +# yq => manage YML +RUN curl -o /usr/local/bin/yq \ + https://github.com/mikefarah/yq/releases/download/v4.18.1/yq_linux_amd64 \ + && chmod +x /usr/local/bin/yq + COPY . /app WORKDIR /app diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index ce4c0a4..3726fec 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -30,6 +30,16 @@ chown -R "$EXT_UID:$EXT_GID" _build chown -R "$EXT_UID:$EXT_GID" .marp chown -R "$EXT_UID:$EXT_GID" /home/appuser +# Patch mkdocs configuration +if [ -f mkdocs-patch.yml ]; then + yq \ + eval-all + '. as $item ireduce ({}; . * $item)' \ + mkdocs-source.yml \ + mkdocs-patch.yml \ + > mkdocs.yml +fi + if [ "$1" = "shell" ]; then exec bash else diff --git a/mkdocs.yml b/mkdocs-source.yml similarity index 100% rename from mkdocs.yml rename to mkdocs-source.yml diff --git a/scripts/gx-teaching b/scripts/gx-teaching index 0a97b14..101b337 100755 --- a/scripts/gx-teaching +++ b/scripts/gx-teaching @@ -77,10 +77,15 @@ else fi if [ -f "$BASEDIR/mkdocs.yml" ]; then - DOCKER_OPT_MKDOCS_CONFIG="-v $BASEDIR/mkdocs.yml:/app/mkdocs.yml" - echo "Mkdocs: detected mkdocs.yml file. Adding option to command line ($DOCKER_OPT_MKDOCS_CONFIG)" + >&2 echo "Mkdocs: detected mkdocs.yml file. Please rename to mkdocs-patch.yml" + exit 1 +fi + +if [ -f "$BASEDIR/mkdocs-patch.yml" ]; then + DOCKER_OPT_MKDOCS_CONFIG="-v $BASEDIR/mkdocs.yml:/app/mkdocs-patch.yml" + echo "Mkdocs: detected mkdocs-patch.yml file. Adding option to command line ($DOCKER_OPT_MKDOCS_CONFIG)" else - echo "Mkdocs: no mkdocs.yml detected. Using default files" + echo "Mkdocs: no mkdocs-patch.yml detected. Using default files" fi if [ -d "$BASEDIR/slides" ]; then