@ 260802.2
current
#!/usr/bin/env bash

target_user=andrew
target_uid="$(id -u "$target_user")"
unit=mount-nas.service
tag=NetworkManager-mount-nas

iface="${1:-}"
action="${2:-}"

case "$action" in
  up|vpn-up)
    ;;
  connectivity-change)
    # Only react when NetworkManager says connectivity is fully online.
    [ "${CONNECTIVITY_STATE:-}" = "FULL" ] || exit 0
    ;;
  *)
    exit 0
    ;;
esac

runtime_dir="/run/user/$target_uid"
bus="unix:path=$runtime_dir/bus"

if [ ! -S "$runtime_dir/bus" ]; then
  logger -t "$tag" \
    "user systemd bus not available for $target_user; not starting $unit"
  exit 0
fi

logger -t "$tag" \
  "NetworkManager action=$action iface=$iface" \
  "connection=${CONNECTION_ID:-unknown}; starting $unit"

runuser -u "$target_user" -- \
  env XDG_RUNTIME_DIR="$runtime_dir" \
      DBUS_SESSION_BUS_ADDRESS="$bus" \
      systemctl --user start --no-block "$unit"