89 lines
2.5 KiB
Bash
Executable File
89 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Define available options as a simple array
|
|
OPTIONS=("tv" "movies" "all")
|
|
|
|
# Default values
|
|
TARGET_ALL=true
|
|
INSTANCE="all"
|
|
ACTION="up"
|
|
|
|
# Parse command line arguments
|
|
while [[ "$#" -gt 0 ]]; do
|
|
case $1 in
|
|
--down|-d)
|
|
ACTION="down"
|
|
;;
|
|
--restart|-r)
|
|
ACTION="restart"
|
|
;;
|
|
*)
|
|
# Assume this is the instance name
|
|
INSTANCE="$1"
|
|
# Only set TARGET_ALL to false if a specific instance is provided
|
|
if [ "$INSTANCE" != "all" ]; then
|
|
TARGET_ALL=false
|
|
fi
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
# Validate the instance name
|
|
if ! [[ " ${OPTIONS[*]} " == *" ${INSTANCE} "* ]]; then
|
|
echo "Unknown instance: $INSTANCE"
|
|
echo "Valid options: ${OPTIONS[*]}"
|
|
exit 1
|
|
fi
|
|
|
|
# Function to execute docker compose commands
|
|
run_docker_compose() {
|
|
local instance=$1
|
|
local action=$2
|
|
local ENV_FILE="./${instance}.env"
|
|
|
|
if [ "$action" == "restart" ]; then
|
|
echo "Restart: Stopping $instance torrentarr instance..."
|
|
docker compose --env-file "$ENV_FILE" down --remove-orphans
|
|
echo "Restart: Starting $instance torrentarr instance..."
|
|
docker compose --env-file "$ENV_FILE" up -d
|
|
else
|
|
if [ "$action" == "down" ]; then
|
|
echo "Stopping $inst torrentarr instance..."
|
|
docker compose --env-file "$ENV_FILE" down --remove-orphans
|
|
echo "Stopped $inst torrentarr instance."
|
|
elif [ "$action" == "up" ]; then
|
|
echo "Starting $inst torrentarr instance..."
|
|
docker compose --env-file "$ENV_FILE" up -d
|
|
echo "Started $inst torrentarr instance."
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Handle all instances or specific instance
|
|
if [ "$TARGET_ALL" = true ]; then
|
|
if [ "$ACTION" == "up" ]; then
|
|
echo "Starting all instances..."
|
|
elif [ "$ACTION" == "down" ]; then
|
|
echo "Stopping all instances..."
|
|
elif [ "$ACTION" == "restart" ]; then
|
|
echo "Restarting all instances..."
|
|
fi
|
|
|
|
# Loop through all options except "all"
|
|
for inst in "${OPTIONS[@]}"; do
|
|
if [ "$inst" != "all" ]; then
|
|
run_docker_compose "$inst" $ACTION
|
|
fi
|
|
done
|
|
|
|
if [ "$ACTION" == "up" ]; then
|
|
echo "Started all instances"
|
|
elif [ "$ACTION" == "down" ]; then
|
|
echo "Stopped all instances"
|
|
elif [ "$ACTION" == "restart" ]; then
|
|
echo "Restarted all instances"
|
|
fi
|
|
else
|
|
run_docker_compose "$INSTANCE" $ACTION
|
|
fi |