#!/bin/bash -x # # Federated Start Script . /federated/lib/functions.sh usage() { printf -v SERVICES_JOINED '%s|' "${SERVICES[@]}" echo "$0: ${SERVICES_JOINED%|}" exit 2 } startservice() { . /federated/bin/.env echo -ne "* Starting $SERVICE.." if [ "$(docker container inspect -f '{{.State.Status}}' $SERVICE 2>/dev/null)" = "running" ]; then echo -ne "is already running.\n" else if [ -z "$ALERTS_EMAIL" ]; then cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE up -d &> /dev/null echo -ne "done.\n" else if [ "$SERVICE" = "jitsi" ]; then spin & SPINPID=$! NC_COMMAND=`grep start_service /federated/lib/$SERVICE.sh | awk -F\" '{ print $4 }'` RETRY=`grep start_service /federated/lib/caddy.sh | awk -F\" '{ print $6 }'` start_service_withalert "$SERVICE" "$NC_COMMAND" "$RETRY" kill -9 $SPINPID &> /dev/null echo -ne "done.\n" fi fi } startservice_all() { . /federated/bin/.env for SERVICE in "${SERVICES[@]}"; do echo -ne "* Starting $SERVICE.." if [ "$(docker container inspect -f '{{.State.Status}}' $SERVICE 2>/dev/null)" = "running" ]; then echo -ne "is already running.\n" else if [ -z "$ALERTS_EMAIL" ]; then cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE up -d &> /dev/null echo -ne "done.\n" else spin & SPINPID=$! NC_COMMAND=`grep start_service /federated/lib/$SERVICE.sh | awk -F\" '{ print $4 }'` RETRY=`grep start_service /federated/lib/caddy.sh | awk -F\" '{ print $6 }'` start_service_withalert "$SERVICE" "$NC_COMMAND" "$RETRY" kill -9 $SPINPID &> /dev/null echo -ne "done.\n" fi fi done } [ $# != 1 ] && usage SERVICE=$1 [ "$SERVICE" = "all" ] && startservice_all if printf '%s\0' "${SERVICES[@]}" | grep -Fxqz -- "$SERVICE"; then startservice else usage fi