#!/bin/bash -e

fatal() { echo "FATAL: $@" 1>&2; exit 1; }

usage() {
cat<<EOF
Syntax: $0 client-name
Create an obfuscated URL for downloading the client profile via HTTPS.

EOF
exit 1
}

if [[ "$#" != "1" ]]; then
    usage
fi

client_name=$1

TEMPLATE=/var/www/wireguard/template.html
PROFILES=/var/www/wireguard/htdocs/profiles

CONF_PATH=/etc/wireguard/clients/$client_name.conf
[ -e $CONF_PATH ] || fatal "$CONF_PATH does not exist"

SERVER_ADDR=$(cat /etc/wireguard/domain.txt)
PROFILE_HASH=$(date +%s%N | cat $CONF_PATH - | sha1sum - | cut -d " " -f 1)
PROFILE_PATH=$PROFILES/$PROFILE_HASH

mkdir -p $PROFILE_PATH
cp $CONF_PATH $PROFILE_PATH/
awk -v config_content="$(cat $CONF_PATH)" '{
    sub(/CONFIG_CONTENT/, config_content);
    print;
}' $TEMPLATE > $PROFILE_PATH/index.html
sed -i "s|CLIENT_NAME|$client_name|" $PROFILE_PATH/index.html
chown -R www-data:www-data $PROFILES
chmod 440 $PROFILE_PATH/$client_name.conf

echo "URL: https://$SERVER_ADDR/profiles/$PROFILE_HASH/"

