#!/bin/bash # ============================================================================= # Authorization Service - Individual Deployment Script # ============================================================================= set -e SERVICE_NAME="authorization-service" CONTAINER_NAME="rwa-authorization-service" IMAGE_NAME="services-authorization-service" PORT=3009 # Colors RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' log_info() { echo -e "${BLUE}[INFO]${NC} $1"; } log_success() { echo -e "${GREEN}[OK]${NC} $1"; } log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; } log_error() { echo -e "${RED}[ERROR]${NC} $1"; } SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SERVICES_DIR="$(dirname "$SCRIPT_DIR")" if [ -f "$SERVICES_DIR/.env" ]; then export $(cat "$SERVICES_DIR/.env" | grep -v '^#' | xargs) fi case "$1" in build) log_info "Building $SERVICE_NAME..." docker build -t "$IMAGE_NAME" "$SCRIPT_DIR" log_success "$SERVICE_NAME built successfully" ;; build-no-cache) log_info "Building $SERVICE_NAME (no cache)..." docker build --no-cache -t "$IMAGE_NAME" "$SCRIPT_DIR" log_success "$SERVICE_NAME built successfully" ;; start) log_info "Starting $SERVICE_NAME..." cd "$SERVICES_DIR" docker compose up -d "$SERVICE_NAME" log_success "$SERVICE_NAME started" ;; stop) log_info "Stopping $SERVICE_NAME..." docker stop "$CONTAINER_NAME" 2>/dev/null || true docker rm "$CONTAINER_NAME" 2>/dev/null || true log_success "$SERVICE_NAME stopped" ;; restart) $0 stop $0 start ;; logs) docker logs -f "$CONTAINER_NAME" ;; logs-tail) docker logs --tail 100 "$CONTAINER_NAME" ;; status) if docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then log_success "$SERVICE_NAME is running" docker ps --filter "name=$CONTAINER_NAME" --format "table {{.Status}}\t{{.Ports}}" else log_warn "$SERVICE_NAME is not running" fi ;; health) log_info "Checking health of $SERVICE_NAME..." if curl -sf "http://localhost:$PORT/health" > /dev/null 2>&1; then log_success "$SERVICE_NAME is healthy" else log_error "$SERVICE_NAME health check failed" exit 1 fi ;; migrate) log_info "Running migrations for $SERVICE_NAME..." docker exec "$CONTAINER_NAME" npx prisma migrate deploy log_success "Migrations completed" ;; shell) docker exec -it "$CONTAINER_NAME" sh ;; *) echo "Usage: $0 {build|build-no-cache|start|stop|restart|logs|logs-tail|status|health|migrate|shell}" exit 1 ;; esac