#!/bin/bash # Install the Microsoft auth_oidc plugin. All values come from env vars # exported by the Dockerfile (single source of truth: # roles/web-app-moodle/vars/main.yml). set -euxo pipefail : "${MOODLE_SOURCE_DIR:?required}" : "${MOODLE_OIDC_PLUGIN_RELPATH:?required}" : "${MOODLE_OIDC_PLUGIN_ARCHIVE_URL:?required}" : "${MOODLE_AUTH_SUBDIR:?required}" PLUGIN_DIR="${MOODLE_SOURCE_DIR}/${MOODLE_OIDC_PLUGIN_RELPATH}" ZIP_PATH="$(mktemp -t auth-oidc.XXXXXX.zip)" EXTRACT_DIR="$(mktemp -d -t auth-oidc-extract.XXXXXX)" trap 'rm -rf "${ZIP_PATH}" "${EXTRACT_DIR}"' EXIT test -d "${MOODLE_SOURCE_DIR}/${MOODLE_AUTH_SUBDIR}" curl --connect-timeout 5 --max-time 300 --retry 3 --retry-all-errors --retry-delay 2 -fSL -o "${ZIP_PATH}" "${MOODLE_OIDC_PLUGIN_ARCHIVE_URL}" unzip -q "${ZIP_PATH}" -d "${EXTRACT_DIR}" rm -rf "${PLUGIN_DIR}" SRC="$(find "${EXTRACT_DIR}" -maxdepth 1 -type d -name 'moodle-auth_oidc-*' | sort | head -n1)" [ -n "${SRC}" ] || { echo "auth_oidc unpack produced no directory" >&2; exit 1; } mv "${SRC}" "${PLUGIN_DIR}"