commit 02b24ca2bf8836cdd8ad0550ea017c346bf235c0 Author: gyurix Date: Fri May 14 19:03:25 2021 +0200 Initial commit diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e97fa23 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM scheduler:latest + +COPY scripts /scripts + +ENTRYPOINT ["/scripts/scheduler.sh"] diff --git a/scripts/scheduler.sh b/scripts/scheduler.sh new file mode 100755 index 0000000..c14d963 --- /dev/null +++ b/scripts/scheduler.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +unset IFS + +service_exec=echo + + +CERT_DIR=/keys + +inotifywait --exclude .swp -m -e modify,create -r $CERT_DIR | \ + +while read dir op file +do + if [[ "${op}" == "CLOSE_WRITE,CLOSE" || "${op}" == "CREATE" ]] ; then + DOMAIN=$(echo $dir|cut -d / -f3) + + FILE=$(find /etc/user/config/services/ -name *.json | xargs -I {} jq '{"file": input_filename, "MAIN": ..|.main?'} {} | jq -c 'select(.MAIN | length > 0)' | grep $DOMAIN | jq -r .file) + + ROLE=$ROLES + + CONTAINER=$(jq -r --arg ROLE $ROLE '.containers[] | select(.ROLES==$ROLE)' $FILE | jq -r .NAME) + + SERVICE_NAME=$(basename $FILE|cut -d . -f1) + + $service_exec $SERVICE_NAME.containers.$CONTAINER stop + + $service_exec $SERVICE_NAME.containers.$CONTAINER start + + fi + +done +