#!/bin/sh

printhelp() {
cat << HELPDOC "
usage: $(basename "$0") command"
usage: $(basename "$0") [-gh]"

options:
  -g, --get-pass    print password to stdout and exit. will output blank if in 'nopass' mode
  -h, --help        show this help page and exit
HELPDOC
}

# get password
sudo=${SUDO:-sudo}
while ! echo "$pass" | $sudo -n true; do
	pass="$(dmenu -p 'Password: ' <&-)" # Ask user for password pass is incorrect (skipped if nopass in enabled)
	[ "$pass" = '' ] && exit 0
done


# options
[ -z "$1" ] && printhelp && exit 1

case "$1" in
	-g|--get-pass) printf "$pass" && exit 0 ;;
	-h|--help)     printhelp      && exit 0 ;;
esac

# xpsuedo magic
echo "$pass" | $sudo xauth -f /root/.Xauthority add $(xauth list $DISPLAY) \
	&& echo "$pass" | $sudo "$@"