-
Notifications
You must be signed in to change notification settings - Fork 498
/
Copy pathinstance-mock-http
executable file
·67 lines (52 loc) · 1.35 KB
/
instance-mock-http
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/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;