47 lines
1.3 KiB
Bash
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!"
|