aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar@proton.me>2026-04-23 21:32:02 +0530
committerArpit Chakladar <arpitchakladar@proton.me>2026-04-23 21:32:02 +0530
commit606716e0a4b8cbeb9076fb88b6b92664a5a24081 (patch)
tree19310cc4ea49bd1c2cda73cb471472ca2ddfad53
parent0b23080ed794c772095cf2a1800bd84249e983d2 (diff)
downloadhome-manager-config-606716e0a4b8cbeb9076fb88b6b92664a5a24081.tar.gz
home-manager-config-606716e0a4b8cbeb9076fb88b6b92664a5a24081.zip
waiting for the vpn to connect before exitting the script in vpn-connect
-rw-r--r--modules/scripts/vpn-connect.sh43
1 files changed, 30 insertions, 13 deletions
diff --git a/modules/scripts/vpn-connect.sh b/modules/scripts/vpn-connect.sh
index eb7256e..216facc 100644
--- a/modules/scripts/vpn-connect.sh
+++ b/modules/scripts/vpn-connect.sh
@@ -9,29 +9,29 @@ mkdir -p "$CREDS_DIR" "$SERVERS_DIR" "$(dirname "$CACHE_FILE")"
REFRESH=false
if [[ "$1" == "--refresh" || "$1" == "-r" ]]; then
- REFRESH=true
+ REFRESH=true
fi
# Load cache
if [[ "$REFRESH" == false && -f "$CACHE_FILE" ]]; then
- source "$CACHE_FILE"
- if [[ ! -f "$CRED" || ! -f "$SERVER" ]]; then
- REFRESH=true
- fi
-else
+ source "$CACHE_FILE"
+ if [[ ! -f "$CRED" || ! -f "$SERVER" ]]; then
REFRESH=true
+ fi
+else
+ REFRESH=true
fi
# Select if needed
if [[ "$REFRESH" == true ]]; then
- CRED=$(find "$CREDS_DIR" -type f | "$FZF" --prompt="Select Credentials > ")
- [ -z "$CRED" ] && exit 1
+ CRED=$(find "$CREDS_DIR" -type f | "$FZF" --prompt="Select Credentials > ")
+ [ -z "$CRED" ] && exit 1
- SERVER=$(find "$SERVERS_DIR" -type f \( -name "*.conf" -o -name "*.ovpn" \) | "$FZF" --prompt="Select VPN Server > ")
- [ -z "$SERVER" ] && exit 1
+ SERVER=$(find "$SERVERS_DIR" -type f \( -name "*.conf" -o -name "*.ovpn" \) | "$FZF" --prompt="Select VPN Server > ")
+ [ -z "$SERVER" ] && exit 1
- echo "CRED=\"$CRED\"" > "$CACHE_FILE"
- echo "SERVER=\"$SERVER\"" >> "$CACHE_FILE"
+ echo "CRED=\"$CRED\"" > "$CACHE_FILE"
+ echo "SERVER=\"$SERVER\"" >> "$CACHE_FILE"
fi
echo "Connecting to $SERVER..."
@@ -39,7 +39,7 @@ echo "Connecting to $SERVER..."
TMP_CONF=$(mktemp /tmp/vpn-config.XXXXXX)
sed -e '/up \/etc\/openvpn\/update-resolv-conf/d' \
- -e '/down \/etc\/openvpn\/update-resolv-conf/d' "$SERVER" > "$TMP_CONF"
+ -e '/down \/etc\/openvpn\/update-resolv-conf/d' "$SERVER" > "$TMP_CONF"
# Run in background
sudo -v || exit 1
@@ -58,3 +58,20 @@ VPN_PID=$!
echo $VPN_PID > "$PID_FILE"
echo "VPN started in background (PID: $VPN_PID)"
echo "Logs: $LOG_FILE"
+
+# Wait until connected
+echo -n "Waiting for VPN connection"
+while true; do
+ if grep -q "Initialization Sequence Completed" "$LOG_FILE" 2>/dev/null; then
+ echo ""
+ echo "VPN connected successfully."
+ break
+ fi
+ if ! kill -0 "$VPN_PID" 2>/dev/null; then
+ echo ""
+ echo "VPN process died. Check logs: $LOG_FILE"
+ exit 1
+ fi
+ sleep 1
+ echo -n "."
+done