mirror of
https://github.com/crowdsecurity/crowdsec.git
synced 2025-05-11 20:36:12 +02:00
* bats: lock/unlock instance data; replace openssl w/ cfssl; update dep list * concat pem without openssl :-/ * unused/unreachable code * lint * redundant {} (shellharden)
67 lines
1.3 KiB
Bash
Executable file
67 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -eu
|
|
|
|
die() {
|
|
echo >&2 "$@"
|
|
exit 1
|
|
}
|
|
|
|
about() {
|
|
die "usage: $0 [ start <port> | 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;
|
|
|