#!/usr/bin/env bash log() { local message="$1" echo -e "\033[32mLog: $message\033[0m" } handle_error() { local error_message="$1" echo -e "\033[31mError: $error_message\033[0m" exit 1 } retry() { local max_attempts=2 local attempt=1 local delay=1 while true; do "$@" && break || { if [ $attempt -lt $max_attempts ]; then log "Command failed (attempt $attempt/$max_attempts). Retrying in $delay seconds..." sleep $delay delay=$((delay * 2)) ((attempt++)) else handle_error "Command failed after $attempt attempts: $*" fi } done } ################################################################################ # MAIN ################################################################################ if [ "$1" == "product" ]; then #start_services docker login -u="admin" -p="may12002" registry.simbrellang.net retry docker pull registry.simbrellang.net/digifi/eventmanager:latest retry docker run -d -p 5000:5000 --env-file product/.env.event --name digi_ev registry.simbrellang.net/digifi/eventmanager:latest cd product || handle_error "Failed to enter 'product' directory" elif [ "$1" == "clean" ]; then retry docker stop digi_ev else handle_error "Invalid argument. Use 'clean' or 'product'." fi