31 lines
703 B
Bash
Executable file
31 lines
703 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# Check if running as root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
|
|
exec doas "$0" "$@"
|
|
fi
|
|
|
|
NAMESPACE="vpn"
|
|
USER="ashie" # Hardcoded for now, could be dynamic
|
|
|
|
# Check if namespace exists
|
|
if ! ip netns list | grep -q "$NAMESPACE"; then
|
|
echo "Error: Network namespace '$NAMESPACE' does not exist."
|
|
echo "Ensure vpn-netns.service is running."
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$#" -eq 0 ]; then
|
|
echo "Usage: $0 <command> [args...]"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
exec ip netns exec "$NAMESPACE" doas -u "$USER" env \
|
|
HOME="/home/$USER" \
|
|
USER="$USER" \
|
|
XDG_RUNTIME_DIR="/run/user/$(id -u $USER)" \
|
|
WAYLAND_DISPLAY="$WAYLAND_DISPLAY" \
|
|
DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(id -u $USER)/bus" \
|
|
"$@"
|