100 lines
2.2 KiB
Bash
Executable File
100 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
|
|
set -eu
|
|
|
|
NODE_BASE_NAME="${FLUXER_GATEWAY_NODE_BASENAME:-fluxer_gateway}"
|
|
|
|
if [ -z "${FLUXER_GATEWAY_NODE_FLAG:-}" ] && [ -n "${FLUXER_GATEWAY_NODE_NAME:-}" ]; then
|
|
case "${FLUXER_GATEWAY_NODE_NAME}" in
|
|
*@*)
|
|
FLUXER_GATEWAY_NODE_FLAG="-name"
|
|
;;
|
|
*)
|
|
FLUXER_GATEWAY_NODE_FLAG="-sname"
|
|
;;
|
|
esac
|
|
export FLUXER_GATEWAY_NODE_FLAG
|
|
fi
|
|
|
|
if [ -z "${FLUXER_GATEWAY_NODE_HOST:-}" ]; then
|
|
if [ -n "${HOSTNAME:-}" ]; then
|
|
FLUXER_GATEWAY_NODE_HOST="$HOSTNAME"
|
|
else
|
|
FLUXER_GATEWAY_NODE_HOST="$(hostname)"
|
|
fi
|
|
export FLUXER_GATEWAY_NODE_HOST
|
|
fi
|
|
|
|
if [ -n "${FLUXER_GATEWAY_NODE_FLAG:-}" ]; then
|
|
case "$FLUXER_GATEWAY_NODE_FLAG" in
|
|
-name | -sname)
|
|
;;
|
|
*)
|
|
echo "Invalid FLUXER_GATEWAY_NODE_FLAG: $FLUXER_GATEWAY_NODE_FLAG" >&2
|
|
exit 64
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if [ -z "${FLUXER_GATEWAY_NODE_FLAG:-}" ]; then
|
|
NODE_MODE=""
|
|
if [ -n "${FLUXER_GATEWAY_NODE_MODE:-}" ]; then
|
|
NODE_MODE="$FLUXER_GATEWAY_NODE_MODE"
|
|
fi
|
|
|
|
if [ -z "$NODE_MODE" ]; then
|
|
FQDN_HOST=""
|
|
if command -v hostname >/dev/null 2>&1; then
|
|
FQDN_HOST="$(hostname -f 2>/dev/null || true)"
|
|
fi
|
|
|
|
if [ -n "$FQDN_HOST" ] && printf '%s' "$FQDN_HOST" | grep -q '\.'; then
|
|
NODE_MODE="long"
|
|
FLUXER_GATEWAY_NODE_HOST="$FQDN_HOST"
|
|
else
|
|
if printf '%s' "$FLUXER_GATEWAY_NODE_HOST" | grep -q '\.'; then
|
|
NODE_MODE="long"
|
|
else
|
|
NODE_MODE="short"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
case "$NODE_MODE" in
|
|
long)
|
|
FLUXER_GATEWAY_NODE_FLAG="-name"
|
|
;;
|
|
short)
|
|
FLUXER_GATEWAY_NODE_FLAG="-sname"
|
|
;;
|
|
*)
|
|
echo "Invalid FLUXER_GATEWAY_NODE_MODE: $NODE_MODE" >&2
|
|
exit 64
|
|
;;
|
|
esac
|
|
|
|
export FLUXER_GATEWAY_NODE_FLAG
|
|
export FLUXER_GATEWAY_NODE_HOST
|
|
fi
|
|
|
|
if [ -z "${FLUXER_GATEWAY_NODE_NAME:-}" ]; then
|
|
if [ "$FLUXER_GATEWAY_NODE_FLAG" = "-name" ]; then
|
|
FLUXER_GATEWAY_NODE_NAME="${NODE_BASE_NAME}@${FLUXER_GATEWAY_NODE_HOST}"
|
|
else
|
|
SAFE_HOST="$(printf '%s' "$FLUXER_GATEWAY_NODE_HOST" | tr -c 'A-Za-z0-9' '_' | tr 'A-Z' 'a-z')"
|
|
FLUXER_GATEWAY_NODE_NAME="${NODE_BASE_NAME}_${SAFE_HOST}"
|
|
fi
|
|
export FLUXER_GATEWAY_NODE_NAME
|
|
fi
|
|
|
|
if [ "$FLUXER_GATEWAY_NODE_FLAG" = "-sname" ]; then
|
|
case "$FLUXER_GATEWAY_NODE_NAME" in
|
|
*@*)
|
|
echo "FLUXER_GATEWAY_NODE_NAME must not include '@' when using -sname." >&2
|
|
exit 64
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
exec /opt/fluxer_gateway/bin/fluxer_gateway foreground
|