70 lines
1.6 KiB
Bash
Executable file
70 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
source config
|
|
|
|
check_root() {
|
|
if [ "$EUID" -ne 0 ]; then
|
|
printf %b\\n "] Please run the script as root."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
usage()
|
|
{
|
|
echo "Usage: peer_mail.sh -p <peer name>"
|
|
}
|
|
|
|
check_root
|
|
|
|
no_args="true"
|
|
while getopts p: option
|
|
do
|
|
case $option in
|
|
(p)
|
|
name=${OPTARG};;
|
|
(*)
|
|
usage
|
|
exit;;
|
|
esac
|
|
no_args="false"
|
|
done
|
|
|
|
[[ "$no_args" == "true" ]] && { usage; exit 1; }
|
|
|
|
email_client=$(cat /etc/wireguard/clients/${name}.info | grep "^email=" | cut -d '=' -f 2)
|
|
|
|
if [ -z ${email_client} ]; then
|
|
echo "] Peer not found."
|
|
exit 2
|
|
fi
|
|
|
|
echo "] Sending the profile data to $email_destination"
|
|
# strip non alphanumeric characters from peer name
|
|
stname=$(echo ${name} | sed "s/[^[:alnum:]-]//g")
|
|
|
|
# fill profile tmp dir with data
|
|
mkdir payload
|
|
mkdir payload/mobile
|
|
cp -v /etc/wireguard/clients/${name}_wg0.conf payload/profile.conf
|
|
cp -v /etc/wireguard/clients/${name}_alltraffic_wg0.conf payload/profile_alltraffic.conf
|
|
cp -v /etc/wireguard/clients/${name}_alltraffic_qr.png payload/mobile/profile_alltraffic_QR.png
|
|
|
|
mkdir payload/linux
|
|
cp -v client-tools/wg-rapid payload/linux/wg-rapid
|
|
cp -v client-tools/startvpn.desktop payload/linux/startvpn.desktop
|
|
chmod +x payload/linux/startvpn.desktop
|
|
|
|
# pack the attachment
|
|
cd payload
|
|
zip -r ../payload.zip .
|
|
cd ..
|
|
mv payload.zip ${stname}_profile.zip
|
|
|
|
# sent the message
|
|
mutt -s "WireGate VPN for ${email_client}" ${email_destination} -a ${stname}_profile.zip < mail.md
|
|
#mutt -s "WireGate VPN for ${email_client}" ${email_client} -a ${stname}_profile.zip < mail.md
|
|
|
|
rm -f -r -v payload
|
|
|
|
exit 0
|