Avida-ED-App-Builder/tools/fetch_assets.sh

33 lines
1.2 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
MODE="${MODE:-docker}" # docker|url
ED_VER="${ED_VER:-v4}" # v3|v4
OUTDIR="${OUTDIR:-/out}"
mkdir -p "$OUTDIR"
case "$MODE" in
docker)
# 1) Start your aed-docker container and copy its served webroot
# Expectation: container serves Avida-ED-Eco at /usr/share/nginx/html/Avida-ED-Eco
CID="$(docker create --name aedtmp_$ED_VER welsberr/aed-docker:$ED_VER)"
trap 'docker rm -f aedtmp_'"$ED_VER"' >/dev/null 2>&1 || true' EXIT
docker cp "aedtmp_$ED_VER:/usr/share/nginx/html/." "$OUTDIR/"
;;
url)
URL="${URL:-https://avida-ed.msu.edu/app4/}"
apk add --no-cache wget >/dev/null 2>&1 || true
wget --recursive --no-parent --page-requisites --adjust-extension \
--compression=auto --convert-links --timestamping \
--directory-prefix "$OUTDIR" \
"$URL"
# normalize into $OUTDIR/Avida-ED-Eco as needed
if [ ! -d "$OUTDIR/Avida-ED-Eco" ]; then
SUB="$(find "$OUTDIR" -type f -name index.html | head -n1)"
[ -n "$SUB" ] && rsync -a "$(dirname "$SUB")"/ "$OUTDIR/Avida-ED-Eco"/
fi
;;
*) echo "Unknown MODE=$MODE" >&2; exit 1;;
esac
echo "Assets fetched to $OUTDIR"