#!/usr/bin/env bash set -euo pipefail # Installs an XDG autostart entry so Cisco VPN auto-connect runs when the GUI user logs in. # Intended to be executed inside the VM. # # Usage: # ./install-cisco-vpn-autostart.sh [username] SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" DESKTOP_FILE_SRC="$SCRIPT_DIR/cisco-vpn-connect.desktop" if [[ ! -f "$DESKTOP_FILE_SRC" ]]; then echo "Missing $DESKTOP_FILE_SRC" >&2 exit 1 fi TARGET_USER="${1:-${SUDO_USER:-$(id -un)}}" TARGET_HOME="$(getent passwd "$TARGET_USER" | cut -d: -f6)" if [[ -z "$TARGET_HOME" || ! -d "$TARGET_HOME" ]]; then echo "Could not determine home directory for user: $TARGET_USER" >&2 exit 1 fi AUTOSTART_DIR="$TARGET_HOME/.config/autostart" DEST_FILE="$AUTOSTART_DIR/cisco-vpn-connect.desktop" sudo -n mkdir -p "$AUTOSTART_DIR" sudo -n install -m 0644 "$DESKTOP_FILE_SRC" "$DEST_FILE" sudo -n chown "$TARGET_USER:$TARGET_USER" "$DEST_FILE" echo "Installed autostart entry: $DEST_FILE" echo "It will run on next GUI login for user: $TARGET_USER"