From 78aa883aa4a114fbb746dfe907eaececc81ae571 Mon Sep 17 00:00:00 2001 From: Gabriele Pongelli Date: Sun, 29 Mar 2020 18:59:28 +0200 Subject: [PATCH 1/5] create directory before, to avoid No Such File error. Use OPENVPN_CONFIG env var to get choosen domain --- openvpn/updateFreeVPN.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/openvpn/updateFreeVPN.sh b/openvpn/updateFreeVPN.sh index 4f0fe5f73..dfa088213 100755 --- a/openvpn/updateFreeVPN.sh +++ b/openvpn/updateFreeVPN.sh @@ -7,20 +7,22 @@ DIR="/tmp/freevpn" TARGET="/etc/openvpn/freevpn" ZIP_FILE="/tmp/freevpn.zip" -URL=`curl -s https://freevpn.me/accounts/` +# Use the OPENVPN_CONFIG env var to obtain running domain +URL=`curl -s https://freevpn."${OPENVPN_CONFIG%%-*}"/accounts/` REGEX=' Date: Mon, 30 Mar 2020 14:36:34 +0200 Subject: [PATCH 2/5] Use OPENVPN_CONFIG to get right FreeVPN domain; do the file name substitution when moving to final folder --- openvpn/updateFreeVPN.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/openvpn/updateFreeVPN.sh b/openvpn/updateFreeVPN.sh index dfa088213..70aafd37c 100755 --- a/openvpn/updateFreeVPN.sh +++ b/openvpn/updateFreeVPN.sh @@ -3,12 +3,17 @@ # Usage: # docker exec -it -w / **CONTAINER** bash -c "./etc/openvn/updateFreeVPN.sh" +DOMAIN=${OPENVPN_CONFIG%%-*} + +OPENVPN_IP=$(curl -s https://freevpn.${DOMAIN}/accounts/ | grep IP | sed s/"^.*IP\:.... "/""/g | sed s/"<.*"/""/g) +SERVER=${OPENVPN_IP%".freevpn.${DOMAIN}"} + DIR="/tmp/freevpn" TARGET="/etc/openvpn/freevpn" ZIP_FILE="/tmp/freevpn.zip" # Use the OPENVPN_CONFIG env var to obtain running domain -URL=`curl -s https://freevpn."${OPENVPN_CONFIG%%-*}"/accounts/` +URL=`curl -s https://freevpn."${DOMAIN}"/accounts/` REGEX=' /dev/null 2>&1 + + file_name=$(basename $file) + + final_file=$DOMAIN-${file_name#*-} + mv $i ${TARGET}/${final_file} > /dev/null 2>&1 done # Delete temporary directory From 76192c4a2a650115313b9080c1eacc4b2fc256b1 Mon Sep 17 00:00:00 2001 From: Gabriele Pongelli Date: Mon, 30 Mar 2020 14:43:20 +0200 Subject: [PATCH 3/5] Launch updateFreeVPN start.sh and add it to daily crontab --- openvpn/start.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/openvpn/start.sh b/openvpn/start.sh index d715e6504..be56467eb 100755 --- a/openvpn/start.sh +++ b/openvpn/start.sh @@ -56,7 +56,16 @@ then elif [[ "${OPENVPN_PROVIDER^^}" = "FREEVPN" ]] then FREEVPN_DOMAIN=${OPENVPN_CONFIG%%-*} - export OPENVPN_PASSWORD=$(curl -s https://freevpn.${FREEVPN_DOMAIN:-"be"}/accounts/ | grep Password | sed s/"^.*Password\:.... "/""/g | sed s/"<.*"/""/g) + export OPENVPN_PASSWORD=$(curl -s https://freevpn.${FREEVPN_DOMAIN:-"me"}/accounts/ | grep Password | sed s/"^.*Password\:.... "/""/g | sed s/"<.*"/""/g) + + # Update FreeVPN certs + /etc/openvpn/updateFreeVPN.sh + + # Add daily update to cron + crontab -l > tempcron + echo "0 1 * * * /etc/openvpn/updateFreeVPN.sh" > tempcron + crontab tempcron + rm tempcron elif [[ "${OPENVPN_PROVIDER^^}" = "VPNBOOK" ]] then pwd_url=$(curl -s "https://www.vpnbook.com/freevpn" | grep -m2 "Password:" | tail -n1 | cut -d \" -f2) From cae111b2fa2515539e7de377a0d7b75914e724ef Mon Sep 17 00:00:00 2001 From: Gabriele Pongelli Date: Mon, 30 Mar 2020 20:45:11 +0200 Subject: [PATCH 4/5] Check crontab to avoid adding the job multiple times --- openvpn/start.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/openvpn/start.sh b/openvpn/start.sh index be56467eb..a7db432d3 100755 --- a/openvpn/start.sh +++ b/openvpn/start.sh @@ -63,8 +63,12 @@ then # Add daily update to cron crontab -l > tempcron - echo "0 1 * * * /etc/openvpn/updateFreeVPN.sh" > tempcron - crontab tempcron + + grep updateFreeVPN tempcron > /dev/null 2>&1 + if [[ $? == 1 ]]; then + echo "0 1 * * * /etc/openvpn/updateFreeVPN.sh" > tempcron + crontab tempcron + fi rm tempcron elif [[ "${OPENVPN_PROVIDER^^}" = "VPNBOOK" ]] then From c08e417ba81f90d080421287ce22c16e814a8e03 Mon Sep 17 00:00:00 2001 From: Gabriele Pongelli Date: Mon, 30 Mar 2020 21:23:48 +0200 Subject: [PATCH 5/5] Removed crontab management, useless with ping-exit option --- openvpn/start.sh | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/openvpn/start.sh b/openvpn/start.sh index a7db432d3..09c51d7ff 100755 --- a/openvpn/start.sh +++ b/openvpn/start.sh @@ -60,16 +60,6 @@ then # Update FreeVPN certs /etc/openvpn/updateFreeVPN.sh - - # Add daily update to cron - crontab -l > tempcron - - grep updateFreeVPN tempcron > /dev/null 2>&1 - if [[ $? == 1 ]]; then - echo "0 1 * * * /etc/openvpn/updateFreeVPN.sh" > tempcron - crontab tempcron - fi - rm tempcron elif [[ "${OPENVPN_PROVIDER^^}" = "VPNBOOK" ]] then pwd_url=$(curl -s "https://www.vpnbook.com/freevpn" | grep -m2 "Password:" | tail -n1 | cut -d \" -f2)