#!/usr/bin/env bash set -e APP_CMD="$(realpath "$BASH_SOURCE")" APP_DIR="$(dirname "$APP_CMD")" source "$APP_DIR/env" source "$APP_DIR/cmd/trap" echo "Locking '/run/$APP_NAME/lock' ..." >&2 mkdir -p "/run/$APP_NAME" exec 100>"/run/$APP_NAME/lock" set +e while true; do source "$APP_DIR/cmd/trap" if flock -e -n 100; then break fi source "$APP_DIR/cmd/untrap" sleep 1 done set +e bash "$APP_DIR/cmd/main" "${@}" EXITCODE="$?" flock -u 100 exit "$EXITCODE"