This commit is contained in:
vinceliuice 2021-06-01 10:54:29 +08:00
parent 8f4becc1a5
commit aa3e2b3c04

View File

@ -117,7 +117,7 @@ install() {
# Backup grub config # Backup grub config
cp -an /etc/default/grub /etc/default/grub.bak cp -an /etc/default/grub /etc/default/grub.bak
# Fedora workaround to fix the missing unicode.pf2 file (tested on fedora 34): https://bugzilla.redhat.com/show_bug.cgi?id=1739762 # Fedora workaround to fix the missing unicode.pf2 file (tested on fedora 34): https://bugzilla.redhat.com/show_bug.cgi?id=1739762
# This occurs when we add a theme on grub2 with Fedora. # This occurs when we add a theme on grub2 with Fedora.
if has_command dnf; then if has_command dnf; then
@ -231,9 +231,9 @@ run_dialog() {
--insecure \ --insecure \
--passwordbox "require root permission" 8 50 \ --passwordbox "require root permission" 8 50 \
--output-fd 1 ) --output-fd 1 )
sudo -S echo <<< $tui_root_login 2> /dev/null && echo sudo -S echo <<< $tui_root_login 2> /dev/null && echo
if [[ $? == 0 ]]; then if [[ $? == 0 ]]; then
#Correct password, use with sudo's stdin #Correct password, use with sudo's stdin
sudo -S "$0" <<< $tui_root_login sudo -S "$0" <<< $tui_root_login
@ -375,7 +375,7 @@ remove() {
read -p " [ Trusted ] Specify the root password : " -t ${MAX_DELAY} -s read -p " [ Trusted ] Specify the root password : " -t ${MAX_DELAY} -s
sudo -S echo <<< $REPLY 2> /dev/null && echo sudo -S echo <<< $REPLY 2> /dev/null && echo
if [[ $? == 0 ]]; then if [[ $? == 0 ]]; then
#Correct password, use with sudo's stdin #Correct password, use with sudo's stdin
sudo -S "$0" "${PROG_ARGS[@]}" <<< $REPLY sudo -S "$0" "${PROG_ARGS[@]}" <<< $REPLY
@ -391,34 +391,36 @@ remove() {
} }
# Show terminal user interface for better use # Show terminal user interface for better use
if [[ $# -lt 1 ]] && [[ -x /usr/bin/dialog ]] ; then if [[ $# -eq 0 ]]; then
install_dialog && run_dialog if [[ ! -x /usr/bin/dialog ]]; then
fi 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 [[ $# -lt 1 ]] && [[ $UID -ne $ROOT_UID ]] && [[ ! -x /usr/bin/dialog ]] ; then if [[ $? == 0 ]]; then
#Check if password is cached (if cache timestamp not expired yet) #No need to ask for password
sudo -n true 2> /dev/null && echo 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
if [[ $? == 0 ]]; then sudo -S echo <<< $REPLY 2> /dev/null && echo
#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
if [[ $? == 0 ]]; then sudo $0 <<< $REPLY
#Correct password, use with sudo's stdin else
sudo $0 <<< $REPLY #block for 3 seconds before allowing another attempt
else sleep 3
#block for 3 seconds before allowing another attempt prompt -e "\n [ Error! ] -> Incorrect password!\n"
sleep 3 exit 1
prompt -e "\n [ Error! ] -> Incorrect password!\n" fi
exit 1 fi
fi fi
install_dialog
fi fi
run_dialog
fi fi
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do