# Script Path Configuration - Verified ✅ **Date**: 2025-12-13 **Status**: ✅ **PATHS CORRECTLY CONFIGURED** --- ## Path Resolution All scripts now correctly locate the `.env` file using absolute paths based on the script's location. ### Path Resolution Logic ```bash # Get the directory where this script is located SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Get the project root (one level up from scripts directory) PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" # Locate .env file in project root ENV_FILE="$PROJECT_ROOT/.env" ``` ### Verified Paths | Component | Path | |-----------|------| | **Script Directory** | `/home/intlc/projects/Sankofa/scripts` | | **Project Root** | `/home/intlc/projects/Sankofa` | | **Env File** | `/home/intlc/projects/Sankofa/.env` | | **Status** | ✅ **EXISTS** | --- ## Updated Scripts All scripts have been updated with proper path resolution: 1. ✅ `scripts/ssh-ml110-01.sh` 2. ✅ `scripts/ssh-r630-01.sh` 3. ✅ `scripts/test-proxmox-connectivity.sh` 4. ✅ `scripts/test-ssh-password.sh` 5. ✅ `scripts/ssh-proxmox-nodes.sh` --- ## Path Resolution Features ### ✅ Works from Any Directory Scripts can be run from any directory and will still find the `.env` file: ```bash # From project root cd /home/intlc/projects/Sankofa ./scripts/ssh-ml110-01.sh # From scripts directory cd /home/intlc/projects/Sankofa/scripts ./ssh-ml110-01.sh # From any other directory cd /tmp /home/intlc/projects/Sankofa/scripts/ssh-ml110-01.sh ``` ### ✅ Error Handling If `.env` file is not found, scripts provide helpful error messages: ``` Error: .env file not found at /home/intlc/projects/Sankofa/.env Current directory: /tmp Script directory: /home/intlc/projects/Sankofa/scripts Project root: /home/intlc/projects/Sankofa ``` --- ## Testing ### Path Resolution Test ```bash # Test from project root cd /home/intlc/projects/Sankofa ./scripts/ssh-ml110-01.sh 'echo "Test"' # Test from scripts directory cd /home/intlc/projects/Sankofa/scripts ./ssh-ml110-01.sh 'echo "Test"' # Test from different directory cd /tmp /home/intlc/projects/Sankofa/scripts/ssh-ml110-01.sh 'echo "Test"' ``` All should correctly locate the `.env` file. --- ## Password Extraction The password is extracted from `.env` file (lines 45-46): ```bash # Extract password from .env (lines 45-46) PROXMOX_PASSWORD=$(sed -n '45,46p' "$ENV_FILE" | grep "PROXMOX_ROOT_PASS" | head -1 | cut -d'=' -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') # Remove quotes if present PROXMOX_PASSWORD="${PROXMOX_PASSWORD#\"}" PROXMOX_PASSWORD="${PROXMOX_PASSWORD%\"}" PROXMOX_PASSWORD="${PROXMOX_PASSWORD#\'}" PROXMOX_PASSWORD="${PROXMOX_PASSWORD%\'}" ``` --- ## Verification ### Test Path Resolution ```bash cd /home/intlc/projects/Sankofa SCRIPT_DIR="$(cd scripts && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" ENV_FILE="$PROJECT_ROOT/.env" echo "Env file: $ENV_FILE" echo "Exists: $([ -f "$ENV_FILE" ] && echo "YES" || echo "NO")" ``` **Expected Output**: ``` Env file: /home/intlc/projects/Sankofa/.env Exists: YES ``` --- ## Common Functions A shared function file is available for reuse: **File**: `scripts/load-env.sh` **Usage**: ```bash source "$(dirname "$0")/load-env.sh" PROXMOX_PASSWORD=$(load_proxmox_password) ``` --- ## Conclusion ✅ **All scripts correctly configured** - Path resolution works from any directory - `.env` file is located correctly - Error messages are helpful - Password extraction works correctly **Status**: ✅ **READY FOR USE** --- **Last Updated**: 2025-12-13 **Status**: ✅ **VERIFIED**