Files
atomic-swap/scripts/docker-swapd/docker-entrypoint.sh
2023-04-23 14:01:08 -04:00

43 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
set -e
cmd="$(basename "${1}")"
#
# If we are running swapd and SWAPD_ENV is set, so this script
# knows where swapd will be writing data, we ensure that the
# atomic user that runs swapd has access the directories where
# the data is written.
#
if [[ "${cmd}" == 'swapd' ]] && [[ -n "${SWAPD_ENV}" ]]; then
if ! [[ "${SWAPD_ENV}" =~ ^dev|stagenet|mainnet$ ]]; then
echo "invalid SWAPD_ENV value"
exit 1
fi
if [[ "${*}:1}" =~ '--data-dir' ]]; then
echo "Setting --data-dir is not recommended for dockerized swapd."
echo "If required, unset SWAPD_ENV or override the entrypoint."
exit 1
fi
data_dir="/data/${SWAPD_ENV}"
# create the directory if it does not exist
if [[ ! -d "${data_dir}" ]]; then
mkdir --mode=700 "${data_dir}"
fi
# ensure the files are owned by the atomic user
chown -R atomic.atomic "${data_dir}"
fi
# Run swapd and swapcli commands as the atomic user for reduced
# privileges.
if [[ "${cmd}" == 'swapd' || "${cmd}" == 'swapcli' ]]; then
exec gosu atomic "$@"
fi
exec "$@"