53 lines
1.3 KiB
Bash
53 lines
1.3 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 ==="
|