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 67
|
#!/usr/bin/env bash
set -eu
script_name=$0
die() {
echo >&2 "$@"
exit 1
}
about() {
die "usage: ${script_name} [ 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 "${CROWDSEC-}" ]] && die "\$CROWDSEC must be defined."
[[ -z "${CSCLI-}" ]] && die "\$CSCLI must be defined."
[[ -z "${LOG_DIR-}" ]] && die "\$LOG_DIR must be defined."
[[ -z "${PID_DIR-}" ]] && die "\$PID_DIR must be defined."
if [[ ! -f "${CROWDSEC}" ]]; then
die "${CROWDSEC} is missing. Please build (with 'make bats-build') or install it."
fi
start() {
systemctl start crowdsec
./bin/wait-for-port 6060
}
start_pid() {
start
pidof /usr/bin/crowdsec
}
stop() {
systemctl stop crowdsec # systemd doesn't throw error when stopping already stopped stuff
while pidof /usr/bin/crowdsec ; do sleep 0.1; done
}
# ---------------------------
[[ $# -lt 1 ]] && about
case "$1" in
start)
start
;;
start-pid)
start_pid
;;
stop)
stop
;;
*)
about
;;
esac;
|