Files
IPTables-Management/tests/mocks/persist-mock.sh

34 lines
778 B
Bash

#!/usr/bin/env bash
set -euo pipefail
: "${PERSIST_MOCK_LOG:=/tmp/persist-mock.log}"
: "${PERSIST_MOCK_FAIL:=0}"
: "${PERSIST_MOCK_DELAY_SECS:=0}"
: "${PERSIST_MOCK_ACTIVE_DIR:=}"
: "${PERSIST_MOCK_FAIL_ON_CONCURRENT:=0}"
printf '%s %s\n' "$(basename -- "$0")" "$*" >>"${PERSIST_MOCK_LOG}"
cleanup() {
[[ -n ${PERSIST_MOCK_ACTIVE_DIR} ]] || return 0
rmdir "${PERSIST_MOCK_ACTIVE_DIR}" 2>/dev/null || true
}
if [[ -n ${PERSIST_MOCK_ACTIVE_DIR} ]]; then
if ! mkdir "${PERSIST_MOCK_ACTIVE_DIR}" 2>/dev/null; then
if [[ ${PERSIST_MOCK_FAIL_ON_CONCURRENT} == 1 ]]; then
exit 1
fi
else
trap cleanup EXIT
fi
fi
if [[ ${PERSIST_MOCK_DELAY_SECS} != 0 ]]; then
sleep "${PERSIST_MOCK_DELAY_SECS}"
fi
if [[ ${PERSIST_MOCK_FAIL} == 1 ]]; then
exit 1
fi