59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
if [ "$1" = "/bin/sh" ]; then
|
||
|
shift
|
||
|
fi
|
||
|
|
||
|
if [ -n "$HTTPS_PORT" ]; then
|
||
|
FWD="`echo $HTTPS_PORT | sed 's|^tcp://||'`"
|
||
|
elif [ -n "$HTTP_PORT" ]; then
|
||
|
FWD="`echo $HTTP_PORT | sed 's|^tcp://||'`"
|
||
|
elif [ -n "$APP_PORT" ]; then
|
||
|
FWD="`echo $APP_PORT | sed 's|^tcp://||'`"
|
||
|
fi
|
||
|
|
||
|
ARGS=""
|
||
|
|
||
|
if [ -n "$NGROK_AUTH" ]; then
|
||
|
ARGS="-authtoken=$NGROK_AUTH "
|
||
|
fi
|
||
|
|
||
|
# Set the subdomain or hostname, depending on which is set
|
||
|
if [ -n "$NGROK_HOSTNAME" ] && [ -n "$NGROK_AUTH" ]; then
|
||
|
ARGS="$ARGS -hostname=$NGROK_HOSTNAME "
|
||
|
elif [ -n "$NGROK_SUBDOMAIN" ] && [ -n "$NGROK_AUTH" ]; then
|
||
|
ARGS="$ARGS -subdomain=$NGROK_SUBDOMAIN "
|
||
|
elif [ -n "$NGROK_HOSTNAME" ] || [ -n "$NGROK_SUBDOMAIN" ]; then
|
||
|
if [ -z "$NGROK_AUTH" ]; then
|
||
|
echo "You must specify an authentication token after registering at https://ngrok.com to use custom domains."
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if [ -n "$NGROK_HEADER" ]; then
|
||
|
ARGS="$ARGS -host-header=$NGROK_HEADER "
|
||
|
fi
|
||
|
|
||
|
PROTOCOL="http"
|
||
|
|
||
|
if [ "$NGROK_PROTOCOL" == "TCP" ]; then
|
||
|
PROTOCOL="tcp "
|
||
|
fi
|
||
|
|
||
|
if [ -n "$NGROK_USERNAME" ] && [ -n "$NGROK_PASSWORD" ] && [ -n "$NGROK_AUTH" ]; then
|
||
|
ARGS="$ARGS -auth=\"$NGROK_USERNAME:$NGROK_PASSWORD\" "
|
||
|
elif [ -n "$NGROK_USERNAME" ] || [ -n "$NGROK_PASSWORD" ]; then
|
||
|
if [ -z "$NGROK_AUTH" ]; then
|
||
|
echo "You must specify a username, password, and Ngrok authentication token to use the custom HTTP authentication."
|
||
|
echo "Sign up for an authentication token at https://ngrok.com"
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
case "$1" in
|
||
|
-h|help) ARGS=$1 ;;
|
||
|
*) ARGS="$PROTOCOL $ARGS -log stdout $* $FWD" ;;
|
||
|
esac
|
||
|
|
||
|
exec /bin/ngrok $ARGS
|