Differenciate between error and abort signal

This commit is contained in:
Muhammad Rivan 2021-06-10 13:33:45 +07:00
parent b36a11b8c9
commit a384f71c2c
No known key found for this signature in database
GPG Key ID: C56A200FD936FAAA
2 changed files with 40 additions and 8 deletions

View File

@ -42,6 +42,8 @@ else
SED_OPT="-i"
fi
SUDO_BIN="$(which sudo)"
#------------Directories--------------#
THEME_SRC_DIR="${REPO_DIR}/src"
DASH_TO_DOCK_SRC_DIR="${REPO_DIR}/src/other/dash-to-dock"
@ -152,8 +154,6 @@ anim=(
" ${c_blue}${c_green}${c_red}${c_magenta}"
)
export SUDO_PROMPT="${c_yellow} SUDO: Authentication is required\n${c_green} SUDO: Password (${MY_USERNAME}): "
###############################################################################
# CORE UTILITIES #
###############################################################################
@ -292,6 +292,12 @@ trap 'signal_abort' INT TERM TSTP
# USER UTILITIES #
###############################################################################
ask() {
echo -e "${c_magenta}\r"
read -p " ${2}" ${1} 2>&1
echo -e "${c_default}"
}
helpify_title() {
printf "${c_cyan}%s${c_blue}%s ${c_green}%s\n\n" "Usage: " "$0" "[OPTIONS...]"
printf "${c_cyan}%s\n" "OPTIONS:"
@ -586,13 +592,41 @@ remind_relative_path() {
# MISC #
###############################################################################
sudo() {
local result="0"
prompt -w "Executing '$(echo "${@}" | cut -c -35 )...' as root"
if ! ${SUDO_BIN} -n true 2> /dev/null; then
echo -e "${c_magenta} Authentication is required:${c_default}"
fi
# Don't combine '[[ ... ]]' and '! ... < /dev/stdin' cause it's gonna
# break the logic/workflow
if [[ -p /dev/stdin ]]; then
if ! ${SUDO_BIN} "${@}" < /dev/stdin; then
result="1"; WHITESUR_COMMAND="${*}"
fi
elif ! ${SUDO_BIN} "${@}"; then
result="1"; WHITESUR_COMMAND="${*}"
fi
echo -e "${c_default}"
return "${result}"
}
udo() {
local result="0"
# Don't combine '[[ ... ]]' and '! ... < /dev/stdin' cause it's gonna
# break the logic/workflow
if [[ -p /dev/stdin ]]; then
! sudo -u "${MY_USERNAME}" "${@}" < /dev/stdin && result="1"; WHITESUR_COMMAND="${*}"
else
! sudo -u "${MY_USERNAME}" "${@}" && result="1"; WHITESUR_COMMAND="${*}"
if ! ${SUDO_BIN} -u "${MY_USERNAME}" "${@}" < /dev/stdin; then
result="1"; WHITESUR_COMMAND="${*}"
fi
elif ! ${SUDO_BIN} -u "${MY_USERNAME}" "${@}"; then
result="1"; WHITESUR_COMMAND="${*}"
fi
return "${result}"

View File

@ -53,9 +53,7 @@ prepare_swupd() {
prompt -w "CLEAR LINUX: You have 'dnf' installed in your system. It may break your system especially when you remove a package"
while [[ "${remove}" != "y" && "${remove}" != "n" ]]; do
echo -e "\r${c_green}"
read -p " CLEAR LINUX: You wanna remove it? (y/n): " remove 2>&1
echo -e "${c_default}"
ask remove "CLEAR LINUX: You wanna remove it? (y/n): "
done
fi