#!/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 "$@"