kiss: Only cache root on first need

This commit is contained in:
Dylan Araps 2020-01-27 11:24:58 +02:00
parent 164afb3b48
commit 7493ccb17b
No known key found for this signature in database
GPG Key ID: 46D62DD9F1DE636E
1 changed files with 5 additions and 13 deletions

18
kiss
View File

@ -54,9 +54,9 @@ root_cache() {
# permissions where needed without the endless stream of
# password prompts.
printf 'Password: '
stty -echo
read -r pass || read -r pass ||:
stty echo
stty -F /dev/tty -echo
read -r pass </dev/tty ||:
stty -F /dev/tty echo
printf '\n'
# Validate the password now with a simple 'true' command
@ -980,7 +980,7 @@ pkg_updates() {
pkg_clean() {
# Clean up on exit or error. This removes everything related
# to the build.
stty echo 2>/dev/null
stty -F /dev/tty echo 2>/dev/null
[ "$KISS_DEBUG" != 1 ] || return
@ -1017,17 +1017,9 @@ args() {
# Parse some arguments earlier to remove the need to duplicate code.
case $action in
c|checksum|s|search)
c|checksum|s|search|i|install|r|remove)
[ "$1" ] || die "'kiss $action' requires an argument"
;;
i|install|r|remove|u|update)
[ "$1" ] || [ -z "${action##u*}" ] ||
die "'kiss $action' requires an argument"
# Cache the root password for use where needed.
[ "$(id -u)" = 0 ] || root_cache
;;
esac
# Actions can be abbreviated to their first letter. This saves