#!/usr/bin/env bash set -eu die() { echo >&2 "$@" exit 1 } about() { die "usage: $0 [ start | stop ]" } #shellcheck disable=SC1007 THIS_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) cd "$THIS_DIR" # shellcheck disable=SC1091 . ./.environment.sh # you have not removed set -u above, have you? [[ -z "${LOG_DIR-}" ]] && die "\$LOG_DIR must be defined." [[ -z "${PID_DIR-}" ]] && die "\$PID_DIR must be defined." if ! command -v python3 >/dev/null 2>&2; then die "The python3 executable is is missing. Please install it and try again." fi DAEMON_PID=${PID_DIR}/mock-http.pid start_instance() { [[ $# -lt 1 ]] && about daemonize \ -p "$DAEMON_PID" \ -e "${LOG_DIR}/mock-http.err" \ -o "${LOG_DIR}/mock-http.out" \ /usr/bin/env python3 -u "${THIS_DIR}/bin/mock-http.py" "$1" ./bin/wait-for-port "$1" # echo "mock http started on port $1" } stop_instance() { if [[ -f "$DAEMON_PID" ]]; then # terminate with extreme prejudice, all the application data will be thrown away anyway kill -9 "$(cat "$DAEMON_PID")" > /dev/null 2>&1 rm -f -- "$DAEMON_PID" fi } # --------------------------- [[ $# -lt 1 ]] && about case "$1" in start) shift start_instance "$@" ;; stop) stop_instance ;; *) about ;; esac;