Hugo/PaperMod static site tracking 13 conferences and 7 journals for edge and cloud systems research. Includes FullCalendar deadline view, ICORE/SCImago rankings, DBLP paper digest pipeline, and Python fetch/generate scripts. PaperMod added as a git submodule.
65 lines
1.8 KiB
Bash
Executable File
65 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Full build pipeline: fetch rankings → fetch deadlines → generate content → hugo build.
|
|
#
|
|
# Usage:
|
|
# ./build.sh # full build
|
|
# ./build.sh --skip-rankings # use cached CSVs
|
|
# ./build.sh --skip-deadlines # use cached deadlines.yaml
|
|
# ./build.sh --dev # run hugo server instead of building
|
|
# ./build.sh --query "edge cloud" # pass keyword to ICORE fetch
|
|
|
|
set -euo pipefail
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$ROOT_DIR"
|
|
|
|
ICORE_QUERY=""
|
|
SKIP_RANKINGS=0
|
|
SKIP_DEADLINES=0
|
|
HUGO_MODE="build"
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--query) ICORE_QUERY="$2"; shift 2 ;;
|
|
--skip-rankings) SKIP_RANKINGS=1; shift ;;
|
|
--skip-deadlines) SKIP_DEADLINES=1; shift ;;
|
|
--dev) HUGO_MODE="serve"; shift ;;
|
|
*) echo "Unknown option: $1"; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
# Ensure uv environment is ready
|
|
uv sync --quiet
|
|
|
|
if [[ $SKIP_RANKINGS -eq 0 ]]; then
|
|
echo "==> Fetching ICORE rankings …"
|
|
uv run pa-fetch-icore --query "$ICORE_QUERY"
|
|
|
|
echo "==> Fetching SCImago rankings …"
|
|
uv run pa-fetch-scimago
|
|
fi
|
|
|
|
if [[ $SKIP_DEADLINES -eq 0 ]]; then
|
|
# Only run if venues.yaml has at least one conference
|
|
if uv run python -c "
|
|
import yaml, sys
|
|
v = yaml.safe_load(open('site/data/venues.yaml'))
|
|
sys.exit(0 if (v or {}).get('conferences') else 1)
|
|
" 2>/dev/null; then
|
|
echo "==> Fetching deadlines …"
|
|
uv run pa-fetch-deadlines
|
|
else
|
|
echo "==> Skipping deadlines (no conferences in site/data/venues.yaml)"
|
|
fi
|
|
fi
|
|
|
|
echo "==> Generating Hugo content …"
|
|
uv run pa-generate
|
|
|
|
echo "==> Building Hugo site …"
|
|
if [[ "$HUGO_MODE" == "serve" ]]; then
|
|
hugo --source site server --buildDrafts --bind 0.0.0.0
|
|
else
|
|
hugo --source site --minify
|
|
echo "==> Site built in site/public/"
|
|
fi
|