#!/bin/bash

#
# Name:         upgrade_wireguard.sh
# Version:      1.9.0
# Description:  Wireguard One-Click Installer
#
# (c) 2022-2023, Rapidseedbox, alin@rapidseedbox.com
#                              alexey@rapidseedbox.com
#

SCRIPT_VER="1.9.0"

APP="Wireguard"
APP_CATEGORY="System Services"
APP_SCOPE="system"
APP_ENABLED="yes"
#><#APP_CHECK_VER_CMD="[ -x /usr/local/sbin/boringtun ] && /usr/local/sbin/boringtun --version 2>&1 | awk "{print \$NF}""
#><#APP_UPGRADE_VER_CMD="wget -q --timeout=10 --tries=3 -O - https://wg.nyr.be/1/latest | awk "{print \$NF}""
SUPPORTED_ON="Ubuntu16.04,Ubuntu18.04,Ubuntu20.04,Ubuntu22.04"
DAEMON_PORT=51820
LIBRARY="functions4.sh"

if [ "${SUPPORT-}" = '' ]; then
    SUPPORT="https://installers.rapidseedbox.com/scripts/whmcs_client_installers/support"
fi

LOGFILE="/var/log/whmcs_client_installers/${0}.log"
[ ! -d "/var/log/whmcs_client_installers" ] && mkdir -p "/var/log/whmcs_client_installers"

wget -4 -nc -q --no-check-certificate --timeout=20 --tries=5 ${SUPPORT}/${LIBRARY} >> "${LOGFILE}" 2>&1
if [ ! -f "./${LIBRARY}" ] ; then
    echo "55"
    echo "Error downloading \"${SUPPORT}/${LIBRARY}\"" >> "${LOGFILE}"
    exit 55
fi

# shellcheck source=support/functions4.sh
. "./${LIBRARY}"
SCRIPTENTRY

WG_CONF_DIR="/etc/wireguard"
WG_IPV4="10.7.0.1"
WG_IPV4_SUBNET_PFX="$( echo "${WG_IPV4}" | awk -F'.' '{print $1"."$2"."$3}' )"
WG_DEV="wg0"
WG_PORT="${DAEMON_PORT}"

while : ; do

    main_rc=1

    CHECK_APP ; _rc=$?
    if [ ${_rc} -ne 0 ] ; then
        main_rc=${_rc}
        break
    fi

    APT_INSTALL "wireguard-tools" || break

    # -- Grab the BoringTun binary using wget or curl and extract into the right place
    RUN_LOG "{ wget -qO- https://wg.nyr.be/1/latest/download 2> /dev/null \
      || curl -sL https://wg.nyr.be/1/latest/download ; } \
           | tar -xz -C /usr/local/sbin/ --wildcards 'boringtun-*/boringtun' --strip-components 1"

    SVC_STATUS "wg-quick@${WG_DEV}" \
        && SVC_RESTART "wg-quick@${WG_DEV}"


    main_rc=0
    break

done


SCRIPTEXIT

