You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lntop/docker/lntop/home/run-lntop

42 lines
1.1 KiB
Bash

#!/usr/bin/env bash
set -e -o pipefail
# this is a special command to allow inspection on this container
if [[ "$1" == "inspect" ]]; then
shift
exec "$@"
fi
cd "$(dirname "${BASH_SOURCE[0]}")"
LNTOP_HOME_DIR=.lntop
LNTOP_CONFIG="$LNTOP_HOME_DIR/config.toml"
LNTOP_CONFIG_TEMPLATE="$LNTOP_HOME_DIR/config-template.toml"
LNTOP_HOST_GID=${LNTOP_HOST_GID:?required}
LNTOP_HOST_UID=${LNTOP_HOST_UID:?required}
# make sure lntop's home dir exists (should be mapped to host via a volume)
if [[ ! -d "$LNTOP_HOME_DIR" ]]; then
mkdir -p "$LNTOP_HOME_DIR"
chown ${LNTOP_HOST_UID}:${LNTOP_HOST_GID} "$LNTOP_HOME_DIR"
fi
eval_template() {
local template_file=$1
eval "cat <<TEMPLATE_EOF_MARKER
$(<${template_file})
TEMPLATE_EOF_MARKER
" 2> /dev/null
}
# stage template file only if it does not already exist
if [[ ! -e "$LNTOP_CONFIG_TEMPLATE" ]]; then
cp initial-config-template.toml "$LNTOP_CONFIG_TEMPLATE"
fi
# we dynamically prepare config from template by baking in env variables
echo "# !!! GENERATED !!! DO NOT EDIT THIS FILE, EDIT config-template.toml INSTEAD" > "$LNTOP_CONFIG"
eval_template initial-config-template.toml >> "$LNTOP_CONFIG"
exec lntop "$@"