diff options
Diffstat (limited to 'x11')
-rwxr-xr-x | x11/xsudo | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -1,8 +1,32 @@ #!/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 "$@" |