58 lines
1.5 KiB
Bash

#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
MODULE_NAME="dashboard_for_sage"
# Try to find Sage root
for candidate in "$SCRIPT_DIR/../.." "$SCRIPT_DIR/../../../sage" "$HOME/repos/sage"; do
if [ -d "$candidate/wwwroot" ] && [ -d "$candidate/py3/bin" ]; then
SAGE_ROOT="$(cd "$candidate" && pwd)"
break
fi
done
if [ -z "$SAGE_ROOT" ]; then
echo "ERROR: Cannot find Sage root. Run this script from within a Sage environment."
exit 1
fi
VENV_PIP="$SAGE_ROOT/py3/bin/pip"
WWWROOT="$SAGE_ROOT/wwwroot"
echo "=== Building $MODULE_NAME ==="
echo "Sage root: $SAGE_ROOT"
# Install the module
cd "$SCRIPT_DIR"
$VENV_PIP install -e .
# Link wwwroot files to Sage wwwroot
MODULE_WWWROOT="$SCRIPT_DIR/wwwroot"
SAGE_MODULE_WWWROOT="$WWWROOT/$MODULE_NAME"
echo "Linking wwwroot..."
mkdir -p "$SAGE_MODULE_WWWROOT/api" "$SAGE_MODULE_WWWROOT/scripts"
# Link all .ui files
for f in "$MODULE_WWWROOT"/*.ui; do
[ -f "$f" ] && ln -sf "$f" "$SAGE_MODULE_WWWROOT/"
done
# Link api/ directory
for f in "$MODULE_WWWROOT/api"/*.dspy; do
[ -f "$f" ] && ln -sf "$f" "$SAGE_MODULE_WWWROOT/api/"
done
# Link scripts/ directory
for f in "$MODULE_WWWROOT/scripts"/*.js; do
[ -f "$f" ] && ln -sf "$f" "$SAGE_MODULE_WWWROOT/scripts/"
done
echo "=== $MODULE_NAME build complete ==="
echo ""
echo "Next steps:"
echo "1. Add permissions to load_path.py (already done in Sage repo)"
echo "2. Run: cd \$SAGE_ROOT && ./py3/bin/python load_path.py"
echo "3. Restart Sage: ./stop.sh && ./start.sh"