migrated core_nest to mainroom
This commit is contained in:
160
mainroom/ctrl/server/setup-symlinks.sh
Executable file
160
mainroom/ctrl/server/setup-symlinks.sh
Executable file
@@ -0,0 +1,160 @@
|
||||
#!/bin/bash
|
||||
# Setup symlinks for test directories
|
||||
# Enables sharing test directories across different services on the same filesystem
|
||||
#
|
||||
# This script should be run on the AWS server after deployment
|
||||
# It creates symlinks to allow ward/tester to access test data from amar_django_back_contracts
|
||||
#
|
||||
# Usage:
|
||||
# ./setup-symlinks.sh [--dry-run]
|
||||
|
||||
set -e
|
||||
|
||||
DRY_RUN=""
|
||||
if [ "$1" == "--dry-run" ]; then
|
||||
DRY_RUN="echo [DRY-RUN]"
|
||||
fi
|
||||
|
||||
echo "=== Setting up Test Directory Symlinks ==="
|
||||
echo ""
|
||||
|
||||
# Check if we're on the server
|
||||
if [ ! -d "$HOME/core_nest" ]; then
|
||||
echo "Error: ~/core_nest directory not found"
|
||||
echo "This script should run on the AWS server after deployment"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$HOME/core_nest"
|
||||
|
||||
# =============================================================================
|
||||
# Test Directory Symlinks
|
||||
# =============================================================================
|
||||
echo "Step 1: Creating symlinks for test directories..."
|
||||
echo ""
|
||||
|
||||
# Ward tester tests directory
|
||||
WARD_TESTS_DIR="pawprint/src/ward/tools/tester/tests"
|
||||
CONTRACTS_SOURCE="amar/src/back/tests/contracts"
|
||||
|
||||
# Create ward tests directory if it doesn't exist
|
||||
if [ ! -d "$WARD_TESTS_DIR" ]; then
|
||||
$DRY_RUN mkdir -p "$WARD_TESTS_DIR"
|
||||
echo " Created $WARD_TESTS_DIR"
|
||||
fi
|
||||
|
||||
# Check if source contracts directory exists
|
||||
if [ ! -d "$CONTRACTS_SOURCE" ]; then
|
||||
echo " ⚠ Warning: Source contracts directory not found: $CONTRACTS_SOURCE"
|
||||
echo " Skipping test symlinks"
|
||||
else
|
||||
# Create symlinks for each test domain
|
||||
for domain_dir in "$CONTRACTS_SOURCE"/*; do
|
||||
if [ -d "$domain_dir" ]; then
|
||||
domain_name=$(basename "$domain_dir")
|
||||
|
||||
# Skip __pycache__ and other Python artifacts
|
||||
if [[ "$domain_name" == "__pycache__" ]] || [[ "$domain_name" == "*.pyc" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
target_link="$WARD_TESTS_DIR/$domain_name"
|
||||
|
||||
# Remove existing symlink or directory
|
||||
if [ -L "$target_link" ]; then
|
||||
$DRY_RUN rm "$target_link"
|
||||
echo " Removed existing symlink: $target_link"
|
||||
elif [ -d "$target_link" ]; then
|
||||
echo " ⚠ Warning: $target_link exists as directory, not symlink"
|
||||
echo " To replace with symlink, manually remove: rm -rf $target_link"
|
||||
continue
|
||||
fi
|
||||
|
||||
# Create relative symlink
|
||||
# From: pawprint/src/ward/tools/tester/tests/
|
||||
# To: amar/src/back/tests/contracts/
|
||||
# Relative path: ../../../../../amar/src/back/tests/contracts/
|
||||
$DRY_RUN ln -s "../../../../../$CONTRACTS_SOURCE/$domain_name" "$target_link"
|
||||
echo " ✓ Created symlink: $target_link -> $domain_name"
|
||||
fi
|
||||
done
|
||||
|
||||
# Also symlink shared test utilities
|
||||
for shared_file in "endpoints.py" "helpers.py" "base.py" "conftest.py"; do
|
||||
source_file="$CONTRACTS_SOURCE/$shared_file"
|
||||
target_file="$WARD_TESTS_DIR/$shared_file"
|
||||
|
||||
if [ -f "$source_file" ]; then
|
||||
if [ -L "$target_file" ]; then
|
||||
$DRY_RUN rm "$target_file"
|
||||
fi
|
||||
|
||||
if [ ! -e "$target_file" ]; then
|
||||
$DRY_RUN ln -s "../../../../../$source_file" "$target_file"
|
||||
echo " ✓ Created symlink: $target_file"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# =============================================================================
|
||||
# Bare Metal Symlinks (if bare metal path exists)
|
||||
# =============================================================================
|
||||
if [ -d "$HOME/pawprint" ]; then
|
||||
echo "Step 2: Creating bare metal symlinks..."
|
||||
echo ""
|
||||
|
||||
BARE_WARD_TESTS="$HOME/pawprint/ward/tools/tester/tests"
|
||||
|
||||
if [ ! -d "$BARE_WARD_TESTS" ]; then
|
||||
$DRY_RUN mkdir -p "$BARE_WARD_TESTS"
|
||||
echo " Created $BARE_WARD_TESTS"
|
||||
fi
|
||||
|
||||
# For bare metal, we can symlink to the docker contract source if it's synced
|
||||
# Or we can sync tests separately (handled by sync-tests.sh)
|
||||
echo " ℹ Bare metal tests managed by sync-tests.sh"
|
||||
echo " Run: $HOME/core_nest/ctrl/sync-tests.sh"
|
||||
else
|
||||
echo "Step 2: Bare metal path not found, skipping"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# =============================================================================
|
||||
# Verification
|
||||
# =============================================================================
|
||||
echo "=== Verification ==="
|
||||
echo ""
|
||||
|
||||
if [ -d "$WARD_TESTS_DIR" ]; then
|
||||
echo "Ward tester tests:"
|
||||
ls -lah "$WARD_TESTS_DIR" | grep -E "^l|^d" || echo " No directories or symlinks found"
|
||||
else
|
||||
echo " ⚠ Ward tests directory not found"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# =============================================================================
|
||||
# Done
|
||||
# =============================================================================
|
||||
if [ -n "$DRY_RUN" ]; then
|
||||
echo "=== Dry run complete (no changes made) ==="
|
||||
else
|
||||
echo "=== Symlink Setup Complete ==="
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo " 1. Verify symlinks are working:"
|
||||
echo " ls -lah $WARD_TESTS_DIR"
|
||||
echo ""
|
||||
echo " 2. Restart ward container to pick up changes:"
|
||||
echo " cd ~/core_nest/ctrl && docker compose restart ward"
|
||||
echo ""
|
||||
echo " 3. Test in browser:"
|
||||
echo " https://ward.mcrn.ar/tools/tester/"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user