#!/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 ==="