Files
LLM-Labs-Local/ansible/roles/lab-scripts/files/wiki-update-runner.sh
T

47 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# Wiki update script - runs as student user
# This script clones or updates the wiki repository
REPO_URL="${WIKI_REPO_URL:-https://git.zuccaro.me/bzuccaro/LLM-Labs.git}"
WIKI_DIR="${HOME}/wiki"
STUDENT_USER="${SUDO_USER:-student}"
run_as_student() {
sudo -u "$STUDENT_USER" -- "$@"
}
if [ -d "$WIKI_DIR/.git" ]; then
echo "Updating existing wiki..."
run_as_student git -C "$WIKI_DIR" pull --ff-only
else
echo "Cloning wiki repository..."
tmp_dir=$(mktemp /tmp/wiki.clone.XXXXXX)
chown "$STUDENT_USER:$STUDENT_USER" "$tmp_dir"
rmdir "$tmp_dir"
run_as_student git clone "$REPO_URL" "$tmp_dir"
# Preserve node_modules and .next if they exist
if [ -d "$WIKI_DIR/node_modules" ] && [ ! -e "$tmp_dir/node_modules" ]; then
mv "$WIKI_DIR/node_modules" "$tmp_dir/node_modules"
fi
if [ -d "$WIKI_DIR/.next" ] && [ ! -e "$tmp_dir/.next" ]; then
mv "$WIKI_DIR/.next" "$tmp_dir/.next"
fi
rm -rf "$WIKI_DIR"
mv "$tmp_dir" "$WIKI_DIR"
chown -R "$STUDENT_USER:$STUDENT_USER" "$WIKI_DIR"
fi
# Install dependencies if needed
if [ ! -d "$WIKI_DIR/node_modules" ]; then
echo "Installing wiki dependencies..."
run_as_student bash -lc "cd '$WIKI_DIR' && npm install --no-fund --no-audit"
fi
echo "Wiki updated successfully!"