#!/bin/bash
########################################################
######################################################## 
# Wire-G App for simple management a Wireguard TUNNEL ##
# Author: Désiré Werner Menrath                       ##
# Email: polunga40@unity-mail.de                      ##
# Translate German to English with LibreTranslate     ##
# Translatefiles edit with Poedit                     ##
# Use without warranty!                               ##
######################################################## 
########################################################

Encoding=UTF-8

# i18n - Internationalization - Internationalisierung

export TEXTDOMAIN=wire-g
export TEXTDOMAINDIR="/usr/share/locale"

############################################################################################################ 
############################################################################################################ 

# wg_workdir Arbeitsverzeichnis wg
WG_WDIR="/home/$USER/.config/wg_nmcli/"
# Pfad wg Icons
WG_PIC="/home/$USER/.icons/"
IFS=$'\n' WG_START=( $(cat ${WG_WDIR}onstart.txt) )
nmcli connection up "$WG_START" 
nmcli connection show --active | grep -iPo "(.*)(wireguard)" | sed 's/  .*//' &> ${WG_WDIR}onstart.txt
ACTIVE=$(nmcli connection show --active | grep -iPo "(.*)(wireguard)" | sed 's/  .*//')

    case $LANG in  
    
        de_DE.UTF-8)  OPEN=öffnen ;;
         
                  *)  OPEN=open ;;
    esac         
        yad --image-on-top --image=${WG_PIC}wg-vpn-info.png \
            --undecorated --borders=8 --skip-taskbar \
            --text-align=center --no-buttons --auto-close \
            --timeout 1 \
            --text=$"<span color='#0fad0a'><b>"$ACTIVE"</b></span>   <span><b>powered</b></span>"
            
    # autoconnect wird hier abgeschalten damit auch neu importierte nach einem Systemneustart nicht aktiv sind
    IFS=$'\n' lines=( $(cat ${WG_WDIR}tunnel.txt) )
    nmcli con mod "$lines" connection.autoconnect no 
    
    if [ -d /home/$USER/.config/autostart ] # for GNOME, XFCE, KDE, Budgie
        then 
            if grep 'TRUE TRUE\|TRUE FALSE' ${WG_WDIR}about.txt 
                then 
                    mv /home/"$USER"/.config/autostart/.wgonstart.desktop /home/"$USER"/.config/autostart/wgonstart.desktop
            else 
                    mv /home/"$USER"/.config/autostart/wgonstart.desktop /home/"$USER"/.config/autostart/.wgonstart.desktop
            fi

    elif [ -d /home/$USER/.config/lxsession/Lubuntu/autostart ] # for LXDE
        then
            if grep 'TRUE TRUE\|TRUE FALSE' ${WG_WDIR}about.txt
                then
                    mv /home/$USER/.config/lxsession/Lubuntu/autostart/.wgonstart.desktop /home/$USER/.config/lxsession/Lubuntu/autostart/wgonstart.desktop 
            else
                    mv /home/$USER/.config/lxsession/Lubuntu/autostart/wgonstart.desktop /home/$USER/.config/lxsession/Lubuntu/autostart/.wgonstart.desktop
            fi
    fi

    yad --notification \
        --image="${WG_PIC}wg-vpn.png" \
        --icon-size=32 --no-middle \
        --text=$"$ACTIVE activ" \
        --menu="Wire-G $OPEN!/sbin/wire_g
        |$ACTIVE stop!/sbin/wg_stop" \
        --command="menu" &

# Schreib die pid von Notify in 
    pid=$(ps aux | grep yad | grep -v grep | awk '{print $2}')
    echo $pid > ${WG_WDIR}for-kill_pid.txt
    IFS=$'\n' lines=( $(cat ${WG_WDIR}for-kill_pid.txt) )