This commit is contained in:
Vince 2021-06-15 13:19:28 +08:00
parent ab5ba9cf78
commit 5a31c8d8e7

View File

@ -390,8 +390,42 @@ remove() {
fi fi
} }
dialog_installer() {
if [[ ! -x /usr/bin/dialog ]]; then
if [[ $UID -ne $ROOT_UID ]]; then
#Check if password is cached (if cache timestamp not expired yet)
sudo -n true 2> /dev/null && echo
if [[ $? == 0 ]]; then
#No need to ask for password
exec sudo $0
else
#Ask for password
prompt -e "\n [ Error! ] -> Run me as root! "
read -p " [ Trusted ] Specify the root password : " -t ${MAX_DELAY} -s
sudo -S echo <<< $REPLY 2> /dev/null && echo
if [[ $? == 0 ]]; then
#Correct password, use with sudo's stdin
sudo $0 <<< $REPLY
else
#block for 3 seconds before allowing another attempt
sleep 3
prompt -e "\n [ Error! ] -> Incorrect password!\n"
exit 1
fi
fi
fi
install_dialog
fi
run_dialog
install "${theme}" "${icon}" "${screen}"
}
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
PROG_ARGS+=("${1}") PROG_ARGS+=("${1}")
dialog='false'
case "${1}" in case "${1}" in
-b|--boot) -b|--boot)
THEME_DIR="/boot/grub/themes" THEME_DIR="/boot/grub/themes"
@ -511,38 +545,7 @@ while [[ $# -gt 0 ]]; do
done done
# Show terminal user interface for better use # Show terminal user interface for better use
if [[ $# -eq 0 ]]; then if [[ "${dialog:-}" == 'false' ]]; then
if [[ ! -x /usr/bin/dialog ]]; then
if [[ $UID -ne $ROOT_UID ]]; then
#Check if password is cached (if cache timestamp not expired yet)
sudo -n true 2> /dev/null && echo
if [[ $? == 0 ]]; then
#No need to ask for password
exec sudo $0
else
#Ask for password
prompt -e "\n [ Error! ] -> Run me as root! "
read -p " [ Trusted ] Specify the root password : " -t ${MAX_DELAY} -s
sudo -S echo <<< $REPLY 2> /dev/null && echo
if [[ $? == 0 ]]; then
#Correct password, use with sudo's stdin
sudo $0 <<< $REPLY
else
#block for 3 seconds before allowing another attempt
sleep 3
prompt -e "\n [ Error! ] -> Incorrect password!\n"
exit 1
fi
fi
fi
install_dialog
fi
run_dialog
install "${theme}" "${icon}" "${screen}"
else
if [[ "${remove:-}" != 'true' ]]; then if [[ "${remove:-}" != 'true' ]]; then
for theme in "${themes[@]-${THEME_VARIANTS[0]}}"; do for theme in "${themes[@]-${THEME_VARIANTS[0]}}"; do
for icon in "${icons[@]-${ICON_VARIANTS[0]}}"; do for icon in "${icons[@]-${ICON_VARIANTS[0]}}"; do
@ -556,6 +559,8 @@ else
remove "${theme}" remove "${theme}"
done done
fi fi
else
dialog_installer
fi fi
exit 1 exit 1