It's all good now baby...
This commit is contained in:
101
Projects/kompose/restart-all-stacks.sh
Normal file
101
Projects/kompose/restart-all-stacks.sh
Normal file
@@ -0,0 +1,101 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script to restart all stacks after timezone configuration changes
|
||||
# This applies the new timezone settings to all running containers
|
||||
|
||||
set -e
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}Restarting Stacks with New Timezone${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
# Get the root directory
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# Find all directories with compose.yaml files
|
||||
STACK_DIRS=()
|
||||
for dir in "$ROOT_DIR"/*/; do
|
||||
if [ -f "$dir/compose.yaml" ]; then
|
||||
STACK_DIRS+=("$dir")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${#STACK_DIRS[@]} -eq 0 ]; then
|
||||
echo -e "${RED}No stacks found!${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "Found ${GREEN}${#STACK_DIRS[@]}${NC} stacks"
|
||||
echo ""
|
||||
|
||||
# Ask for confirmation
|
||||
echo -e "${YELLOW}This will restart all stacks to apply timezone changes.${NC}"
|
||||
echo -e "${YELLOW}Make sure you have run add-timezone.py first!${NC}"
|
||||
echo ""
|
||||
read -p "Continue? (y/N) " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Aborted."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
SUCCESS=0
|
||||
FAILED=0
|
||||
SKIPPED=0
|
||||
|
||||
for stack_dir in "${STACK_DIRS[@]}"; do
|
||||
stack_name=$(basename "$stack_dir")
|
||||
|
||||
echo -e "Processing: ${YELLOW}$stack_name${NC}"
|
||||
|
||||
cd "$stack_dir"
|
||||
|
||||
# Check if containers are running
|
||||
if ! docker compose ps --quiet | grep -q .; then
|
||||
echo -e " ${YELLOW}⏭ No running containers, skipping${NC}"
|
||||
((SKIPPED++))
|
||||
echo ""
|
||||
continue
|
||||
fi
|
||||
|
||||
# Restart the stack
|
||||
if docker compose up -d --quiet-pull 2>&1; then
|
||||
echo -e " ${GREEN}✓ Restarted successfully${NC}"
|
||||
((SUCCESS++))
|
||||
else
|
||||
echo -e " ${RED}✗ Failed to restart${NC}"
|
||||
((FAILED++))
|
||||
fi
|
||||
|
||||
cd "$ROOT_DIR"
|
||||
echo ""
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "${BLUE}Summary${NC}"
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
echo -e "Success: ${GREEN}$SUCCESS${NC} stacks"
|
||||
echo -e "Failed: ${RED}$FAILED${NC} stacks"
|
||||
echo -e "Skipped: ${YELLOW}$SKIPPED${NC} stacks"
|
||||
echo ""
|
||||
|
||||
if [ $SUCCESS -gt 0 ]; then
|
||||
echo -e "${GREEN}Timezone changes have been applied!${NC}"
|
||||
echo ""
|
||||
echo "Verify with: docker exec <container_name> date"
|
||||
fi
|
||||
|
||||
if [ $FAILED -gt 0 ]; then
|
||||
echo -e "${RED}Some stacks failed to restart. Check the logs above.${NC}"
|
||||
fi
|
||||
Reference in New Issue
Block a user