forked from Shinonome/dots-hyprland
Use variable to store color for script output
This commit is contained in:
+21
-21
@@ -8,60 +8,60 @@
|
||||
function try { "$@" || sleep 0; }
|
||||
function v() {
|
||||
echo -e "####################################################"
|
||||
echo -e "\e[34m[$0]: Next command:\e[0m"
|
||||
echo -e "\e[32m$@\e[0m"
|
||||
echo -e "${COLOR_BLUE}[$0]: Next command:${COLOR_RESET}"
|
||||
echo -e "${COLOR_GREEN}$@${COLOR_RESET}"
|
||||
execute=true
|
||||
if $ask;then
|
||||
while true;do
|
||||
echo -e "\e[34mExecute? \e[0m"
|
||||
echo -e "${COLOR_BLUE}Execute? ${COLOR_RESET}"
|
||||
echo " y = Yes"
|
||||
echo " e = Exit now"
|
||||
echo " s = Skip this command (NOT recommended - your setup might not work correctly)"
|
||||
echo " yesforall = Yes and don't ask again; NOT recommended unless you really sure"
|
||||
read -p "====> " p
|
||||
case $p in
|
||||
[yY]) echo -e "\e[34mOK, executing...\e[0m" ;break ;;
|
||||
[eE]) echo -e "\e[34mExiting...\e[0m" ;exit ;break ;;
|
||||
[sS]) echo -e "\e[34mAlright, skipping this one...\e[0m" ;execute=false ;break ;;
|
||||
"yesforall") echo -e "\e[34mAlright, won't ask again. Executing...\e[0m"; ask=false ;break ;;
|
||||
*) echo -e "\e[31mPlease enter [y/e/s/yesforall].\e[0m";;
|
||||
[yY]) echo -e "${COLOR_BLUE}OK, executing...${COLOR_RESET}" ;break ;;
|
||||
[eE]) echo -e "${COLOR_BLUE}Exiting...${COLOR_RESET}" ;exit ;break ;;
|
||||
[sS]) echo -e "${COLOR_BLUE}Alright, skipping this one...${COLOR_RESET}" ;execute=false ;break ;;
|
||||
"yesforall") echo -e "${COLOR_BLUE}Alright, won't ask again. Executing...${COLOR_RESET}"; ask=false ;break ;;
|
||||
*) echo -e "${COLOR_RED}Please enter [y/e/s/yesforall].${COLOR_RESET}";;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
if $execute;then x "$@";else
|
||||
echo -e "\e[33m[$0]: Skipped \"$@\"\e[0m"
|
||||
echo -e "${COLOR_YELLOW}[$0]: Skipped \"$@\"${COLOR_RESET}"
|
||||
fi
|
||||
}
|
||||
# When use v() for a defined function, use x() INSIDE its definition to catch errors.
|
||||
function x() {
|
||||
if "$@";then cmdstatus=0;else cmdstatus=1;fi # 0=normal; 1=failed; 2=failed but ignored
|
||||
while [ $cmdstatus == 1 ] ;do
|
||||
echo -e "\e[31m[$0]: Command \"\e[32m$@\e[31m\" has failed."
|
||||
echo -e "${COLOR_RED}[$0]: Command \"${COLOR_GREEN}$@${COLOR_RED}\" has failed."
|
||||
echo -e "You may need to resolve the problem manually BEFORE repeating this command."
|
||||
echo -e "[Tip] If a certain package is failing to install, try installing it separately in another terminal.\e[0m"
|
||||
echo -e "[Tip] If a certain package is failing to install, try installing it separately in another terminal.${COLOR_RESET}"
|
||||
echo " r = Repeat this command (DEFAULT)"
|
||||
echo " e = Exit now"
|
||||
echo " i = Ignore this error and continue (your setup might not work correctly)"
|
||||
read -p " [R/e/i]: " p
|
||||
case $p in
|
||||
[iI]) echo -e "\e[34mAlright, ignore and continue...\e[0m";cmdstatus=2;;
|
||||
[eE]) echo -e "\e[34mAlright, will exit.\e[0m";break;;
|
||||
*) echo -e "\e[34mOK, repeating...\e[0m"
|
||||
[iI]) echo -e "${COLOR_BLUE}Alright, ignore and continue...${COLOR_RESET}";cmdstatus=2;;
|
||||
[eE]) echo -e "${COLOR_BLUE}Alright, will exit.${COLOR_RESET}";break;;
|
||||
*) echo -e "${COLOR_BLUE}OK, repeating...${COLOR_RESET}"
|
||||
if "$@";then cmdstatus=0;else cmdstatus=1;fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
case $cmdstatus in
|
||||
0) echo -e "\e[34m[$0]: Command \"\e[32m$@\e[34m\" finished.\e[0m";;
|
||||
1) echo -e "\e[31m[$0]: Command \"\e[32m$@\e[31m\" has failed. Exiting...\e[0m";exit 1;;
|
||||
2) echo -e "\e[31m[$0]: Command \"\e[32m$@\e[31m\" has failed but ignored by user.\e[0m";;
|
||||
0) echo -e "${COLOR_BLUE}[$0]: Command \"${COLOR_GREEN}$@${COLOR_BLUE}\" finished.${COLOR_RESET}";;
|
||||
1) echo -e "${COLOR_RED}[$0]: Command \"${COLOR_GREEN}$@${COLOR_RED}\" has failed. Exiting...${COLOR_RESET}";exit 1;;
|
||||
2) echo -e "${COLOR_RED}[$0]: Command \"${COLOR_GREEN}$@${COLOR_RED}\" has failed but ignored by user.${COLOR_RESET}";;
|
||||
esac
|
||||
}
|
||||
function showfun() {
|
||||
echo -e "\e[34m[$0]: The definition of function \"$1\" is as follows:\e[0m"
|
||||
printf "\e[32m"
|
||||
echo -e "${COLOR_BLUE}[$0]: The definition of function \"$1\" is as follows:${COLOR_RESET}"
|
||||
printf "${COLOR_GREEN}"
|
||||
type -a $1
|
||||
printf "\e[97m"
|
||||
printf "${COLOR_RESET}"
|
||||
}
|
||||
function remove_bashcomments_emptylines(){
|
||||
mkdir -p $(dirname $2)
|
||||
@@ -69,6 +69,6 @@ function remove_bashcomments_emptylines(){
|
||||
}
|
||||
function prevent_sudo_or_root(){
|
||||
case $(whoami) in
|
||||
root) echo -e "\e[31m[$0]: This script is NOT to be executed with sudo or as root. Aborting...\e[0m";exit 1;;
|
||||
root) echo -e "${COLOR_RED}[$0]: This script is NOT to be executed with sudo or as root. Aborting...${COLOR_RESET}";exit 1;;
|
||||
esac
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user