Spaces:
Sleeping
Sleeping
| # Source the logging utilities | |
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | |
| source "${SCRIPT_DIR}/utils/logging.sh" | |
| # Load configuration from .env file | |
| load_env() { | |
| if [ -f .env ]; then | |
| # Only load necessary environment variables | |
| export LOCAL_APP_PORT=$(grep '^LOCAL_APP_PORT=' .env | cut -d '=' -f2) | |
| else | |
| # Use default port if .env not found | |
| export LOCAL_APP_PORT=8002 | |
| log_info "Using default port: ${LOCAL_APP_PORT}" | |
| fi | |
| } | |
| # Main function to restart backend services | |
| restart_backend() { | |
| local force=false | |
| # Parse arguments | |
| while [[ "$#" -gt 0 ]]; do | |
| case $1 in | |
| --force) force=true ;; | |
| *) log_error "Unknown parameter: $1"; return 1 ;; | |
| esac | |
| shift | |
| done | |
| log_step "Restarting backend services..." | |
| # Load environment variables | |
| if ! load_env; then | |
| return 1 | |
| fi | |
| # If --force parameter is used, clear data folder | |
| if [ "$force" = true ]; then | |
| log_warning "Force restart mode: This will clear the data folder, all data will be deleted!" | |
| read -p "Are you sure you want to continue? (y/n) " -n 1 -r | |
| echo | |
| if [[ $REPLY =~ ^[Yy]$ ]]; then | |
| log_info "Clearing data folder..." | |
| rm -rf "${LOCAL_BASE_DIR}/data" | |
| log_success "Data folder cleared, database will be reinitialized" | |
| else | |
| log_info "Operation cancelled" | |
| return 0 | |
| fi | |
| fi | |
| # 1. Stop backend service | |
| BACKEND_PID=$(lsof -ti:8002) | |
| if [ ! -z "$BACKEND_PID" ]; then | |
| kill $BACKEND_PID | |
| log_success "Backend service stopped" | |
| fi | |
| rm -f run/.backend.pid backend.log | |
| # 2. Wait for port release | |
| sleep 2 | |
| # 3. Start backend service | |
| ./scripts/start.sh --backend-only | |
| } | |
| # Execute restart service | |
| restart_backend "$@" | |