diff --git a/Hakku3.sh b/Hakku3.sh new file mode 100755 index 0000000..9d0f36f --- /dev/null +++ b/Hakku3.sh @@ -0,0 +1,52 @@ +# +# Hakku3: A reworked command line utility which shows the user +# their system info and a bunch of useful tools and tweaks. +# Built using Bash version 3.2.57(1)-release +# +# The MIT License (MIT) +# +# Copyright (c) 2021 Ryan Wong +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +LGREEN='\033[1;32m' +GREEN='\033[0;32m' +BLUE='\033[0;34m' +YELLOW='\033[0;33m' +CYAN='\033[0;36m' +RED='\033[0;31m' +NC='\033[0m' +LYELLOW='\033[1;33m' +bold=$(tput bold) +normal=$(tput sgr0) + +version=" v3.0.0" +build="build-20210326" +updating="Please check for updates." +color="${YELLOW}${bold}" + +start=loading +. ./load.sh +. ./functions.sh +. ./tweaks_f.sh +. ./settings_f.sh +. ./update_f.sh + +$start +mainmenu diff --git a/example.sh b/example.sh index f7e3d5f..37faab3 100644 --- a/example.sh +++ b/example.sh @@ -1,10 +1,9 @@ -#!/bin/bash # -# An example page/template in Hakku2 +# An example page/template in Hakku3 # # The MIT License (MIT) # -# Copyright (c) 2019 Ryan Wong +# Copyright (c) 2021 Ryan Wong # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -25,30 +24,29 @@ # SOFTWARE. /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' -printf "${YELLOW}${bold}" -echo " v$version" -echo "" -echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; -echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; -echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; -echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; -echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; -echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; -echo "" -echo "" -printf "${NC}${normal}" +printf "$color" +echo "$build $version" echo "" echo "" echo "" echo "" echo "" echo "" +echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; +echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; +echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; +echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; +echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; +echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" +echo " Ryan Wong 2021" echo "" echo "" echo "" echo "" +printf "${NC}${normal}" echo "" -echo "press q to go back" -echo "" -read -p "> " input. +options=("Start" "Exit" "Help") + +select_option "${options[@]}" +choice=$? diff --git a/functions.sh b/functions.sh index e9b4e9c..19b8267 100755 --- a/functions.sh +++ b/functions.sh @@ -1,6 +1,5 @@ -#!bin/bash # -# Hakku2 Functions: A totally reworked command line utility which shows the user +# Hakku3 Functions: A totally reworked command line utility which shows the user # their system info and a bunch of useful tools and tweaks. # Built using Bash version 3.2.57(1)-release # @@ -26,21 +25,79 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +function select_option { + + # little helpers for terminal print control and key input + ESC=$( printf "\033") + cursor_blink_on() { printf "$ESC[?25h"; } + cursor_blink_off() { printf "$ESC[?25l"; } + cursor_to() { printf "$ESC[$1;${2:-1}H"; } + print_option() { printf " $1 "; } + print_selected() { printf " $ESC[7m $1 $ESC[27m"; } + get_cursor_row() { IFS=';' read -sdR -p $'\E[6n' ROW COL; echo ${ROW#*[}; } + key_input() { read -s -n3 key 2>/dev/null >&2 + if [[ $key = $ESC[A ]]; then echo up; fi + if [[ $key = $ESC[B ]]; then echo down; fi + if [[ $key = "" ]]; then echo enter; fi; } + + # initially print empty new lines (scroll down if at bottom of screen) + for opt; do printf "\n"; done + + # determine current screen position for overwriting the options + local lastrow=`get_cursor_row` + local startrow=$(($lastrow - $#)) + + # ensure cursor and input echoing back on upon a ctrl+c during read -s + trap "cursor_blink_on; stty echo; printf '\n'; exit" 2 + cursor_blink_off + + local selected=0 + while true; do + # print options by overwriting the last lines + local idx=0 + for opt; do + cursor_to $(($startrow + $idx)) + if [ $idx -eq $selected ]; then + print_selected "$opt" + else + print_option "$opt" + fi + ((idx++)) + done + + # user key control + case `key_input` in + enter) break;; + up) ((selected--)); + if [ $selected -lt 0 ]; then selected=$(($# - 1)); fi;; + down) ((selected++)); + if [ $selected -ge $# ]; then selected=0; fi;; + esac + done + + # cursor position back to normal + cursor_to $lastrow + printf "\n" + cursor_blink_on + + return $selected +} + # Clear Console clear # Loading Screen refresh(){ + +printf "${GREEN}${bold}[INFO] ${NC}${normal}Checking if script is running as root" + if [[ $EUID -ne 0 ]]; then - printf "${RED}${bold}[ERROR] ${NC}${normal}This script must be run as root\n" + printf "${RED}${bold}[ERROR] ${NC}${normal}This script must be run as root!\n" exit 1 elif [[ $EUID -ne 1 ]]; then echo "" fi -/usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' - -printf "${GREEN}${bold}[INFO] ${NC}${normal}Checking if script is running as root\n" printf "${GREEN}${bold}[INFO] ${NC}${normal}This script is running as root\n" printf "${GREEN}${bold}[INFO] ${NC}${normal}Checking system if it meets requirements\n" @@ -55,6 +112,7 @@ fi if command -v jq > /dev/null ; then printf "${GREEN}${bold}[INFO] ${NC}${normal}jq is installed\n" else + printf "${RED}${bold}[ERROR] ${NC}${normal}jq is not installed\n" echo "Install jq with 'brew install jq'" exit 0 @@ -78,28 +136,34 @@ fi printf "${GREEN}${bold}[INFO] ${NC}${normal}Getting Bash version\n" bashv=$BASH_VERSION + printf "${GREEN}${bold}[INFO] ${NC}${normal}Getting Model info\n" -if [[ "$(kextstat | grep -F -e "FakeSMC" -e "VirtualSMC")" != "" ]]; then +if [[ "$(kmutil showloaded --variant-suffix release | grep -F -e "FakeSMC" -e "VirtualSMC")" != "" ]]; then model="Hackintosh ($(sysctl -n hw.model))" printf "${GREEN}${bold}[INFO] ${NC}${normal}System is a Hackintosh\n" else model="$(sysctl -n hw.model)" printf "${GREEN}${bold}[INFO] ${NC}${normal}System is a real Mac\n" fi + printf "${GREEN}${bold}[INFO] ${NC}${normal}Getting CPU info\n" cpu=$(sysctl -n machdep.cpu.brand_string) + printf "${GREEN}${bold}[INFO] ${NC}${normal}Getting GPU info\n" gpu="$(system_profiler SPDisplaysDataType |\ awk -F': ' '/^\ *Chipset Model:/ {printf $2 ", "}')" gpu="${gpu//\/ \$}" gpu="${gpu%,*}" + printf "${GREEN}${bold}[INFO] ${NC}${normal}Getting RAM info\n" ram="$(system_profiler SPHardwareDataType |\ awk -F': ' '/^\ *Memory:/ {printf $2 ", "}')" ram="${ram//\/ \$}" ram="${ram%,*}" + printf "${GREEN}${bold}[INFO] ${NC}${normal}Getting Kernel info\n" kernel=$(uname -r) + printf "${GREEN}${bold}[INFO] ${NC}${normal}Getting Battery info\n" batt=$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1) if [ "$batt" -le "20" ]; then @@ -110,11 +174,13 @@ else printf "" fi battcon=$(system_profiler SPPowerDataType | grep "Condition" | awk '{print $2}') + printf "${GREEN}${bold}[INFO] ${NC}${normal}Getting Disk info\n" dtype="$(diskutil info / |\ awk -F': ' '/^\ *File System Personality:/ {printf $2 ", "}')" dtype="${dtype//\/ \$}" dtype="${dtype%,*}" + nvme="$(system_profiler SPNVMeDataType |\ awk -F': ' '/^\ *Model:/ {printf $2 ", "}')" nvme="${nvme//\/ \$}" @@ -123,6 +189,7 @@ sata="$(system_profiler SPSerialATADataType |\ awk -F': ' '/^\ *Model:/ {printf $2 ", "}')" sata="${sata//\/ \$}" sata="${sata%,*}" + printf "${GREEN}${bold}[INFO] ${NC}${normal}Getting MacOS version\n" OS=$(sw_vers -productVersion) if [ $OS == "10.14.0" ] || [ $OS == "10.14.1" ] || [ $OS == "10.14.2" ] || [ $OS == "10.14.3" ] || [ $OS == "10.14.4" ] || [ $OS == "10.14.5" ]; then @@ -143,6 +210,7 @@ fi check=0 check1=0 +check2=0 printf "${GREEN}${bold}[INFO] ${NC}${normal}Checking for Settings Extension\n" if [ -e settings_f.sh ]; then @@ -150,6 +218,7 @@ if [ -e settings_f.sh ]; then else check=1 printf "${RED}${bold}[ERROR] ${NC}${normal}Failed to find Settings Extension\n" + exit 0 fi printf "${GREEN}${bold}[INFO] ${NC}${normal}Checking for Tweaks Extension\n" @@ -158,18 +227,20 @@ if [ -e tweaks_f.sh ]; then else check1=1 printf "${RED}${bold}[ERROR] ${NC}${normal}Failed to find Tweaks Extension\n" + exit 0 fi printf "${GREEN}${bold}[INFO] ${NC}${normal}Checking for Update Extension\n" if [ -e update_f.sh ]; then printf "${GREEN}${bold}[INFO] ${NC}${normal}Found Update Extension\n" else - check1=1 + check2=1 printf "${RED}${bold}[ERROR] ${NC}${normal}Failed to find Update Extension\n" + exit 0 fi echo "" -echo " Loading..." +echo " Loading..." sleep 1 mainmenu } @@ -179,39 +250,39 @@ mainmenu(){ while true; do /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" - echo "? for help $version" - echo "$build" - echo "" + echo "$build $version" echo "" echo "" echo "" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; - echo "" - echo " Ryan Wong 2021" echo "" echo "" + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" + echo " Ryan Wong 2021" echo "" - printf "${NC}${normal} 1) Start Q) Exit" echo "" echo "" echo "" + printf "${NC}${normal}" echo "" - read -p "> " input + options=("Start" "Exit" "Help") - if [ $input = 1 ]; then - systeminfo - elif [ $input = "Q" ] || [ $input = "q" ]; then - goodbye - elif [ $input = "?" ]; then - help - fi + select_option "${options[@]}" + choice=$? + + if [ $choice = "0" ]; then + systeminfo + elif [ $choice = "1" ]; then + goodbye + elif [ $choice = "2" ]; then + help + fi done } @@ -222,12 +293,12 @@ systeminfo(){ /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; printf "${NC}${normal}" printf "${CYAN}${bold}Bash Version: ${NC}${normal}" echo "$bashv" @@ -250,36 +321,69 @@ systeminfo(){ printf "${CYAN}${bold}Battery Info: ${NC}${normal}" echo "Percentage: $batt%" printf "${RED}${bold} $low ${NC}${normal}\n" - printf "${GREEN}${bold} $full ${NC}${normal}\n" printf " Condition : $battcon\n" + + options=("Menu" "Exit" "Help") + + select_option "${options[@]}" + choice1=$? + + if [ $choice1 = "0" ]; then + menus + elif [ $choice1 = "1" ]; then + goodbye + elif [ $choice2 = "2" ]; then + help + fi +done +} + +# New Menu +menus(){ + while true; do + /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' + printf "$color" + echo " $version" + echo "" + echo "" + echo "" + echo "" + echo "" + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" - echo "press q to go back" - read -p "> " in2 + printf "${NC}${normal}" + echo "" + options=("Options" "Help" "Info" "Tweaks" "Update $noti" "System Info" "Settings" "Exit") + + select_option "${options[@]}" + choice2=$? - if [ $in2 = "options" ]; then + if [ $choice2 = "0" ]; then options - elif [ $in2 = "?" ]; then + elif [ $choice2 = "1" ]; then help - elif [ $in2 = "info" ]; then + elif [ $choice2 = "2" ]; then info - elif [ $in2 = "tweaks" ]; then + elif [ $choice2 = "3" ]; then . ./tweaks_f.sh risk - elif [ $in2 = "exit" ]; then + elif [ $choice2 = "7" ]; then goodbye - elif [ $in2 = "q" ]; then - mainmenu - elif [ $in2 = "update" ]; then + elif [ $choice2 = "4" ]; then . ./update_f.sh update - elif [ $in2 = "refresh" ]; then - refresh - systeminfo - elif [ $in2 = "settings" ]; then + elif [ $choice2 = "5" ]; then + $start + elif [ $choice2 = "6" ]; then . ./settings_f.sh settings fi - done +done } # exits program @@ -293,12 +397,12 @@ goodbye(){ echo "" echo "" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" echo "" echo "" @@ -306,17 +410,19 @@ goodbye(){ echo "" echo "" printf "${NC}${normal} Are you sure?\n" - echo " (Y/N) " echo "" echo "" - echo "" - read -p "> " in - if [ $in = "y" ] || [ $in = "Y" ]; then + options=("Yes" "No") + + select_option "${options[@]}" + choice3=$? + + if [ $choice3 = "0" ]; then clear exit 0 - elif [ $in = "n" ] || [ $in = "N" ]; then - mainmenu + elif [ $choice3 = "1" ]; then + menus fi done } @@ -328,18 +434,18 @@ help(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" echo " Hakku Usage" echo " -----------" - echo " refresh | Refresh System Info" + echo " system info | System Info" echo " exit | Exit Program" echo " ? | Help Page (This Page)" echo " options | Options Page" @@ -348,32 +454,15 @@ help(){ echo " settings| Settings Page" printf " update | Check and Update Hakku$noti\n" echo "" - echo "press q to go back" echo "" - read -p "> " input3 - if [ $input3 = "options" ]; then - options - elif [ $input3 = "?" ]; then - help - elif [ $input3 = "info" ]; then - info - elif [ $input3 = "tweaks" ]; then - . ./tweaks_f.sh - risk - elif [ $input3 = "exit" ]; then - goodbye - elif [ $input3 = "refresh" ]; then - refresh - systeminfo - elif [ $input3 = "settings" ]; then - . ./settings_f.sh - settings - elif [ $input3 = "update" ]; then - . ./update_f.sh - update - elif [ $input3 = "q" ]; then - mainmenu + options=("Menu") + + select_option "${options[@]}" + choice4=$? + + if [ $choice4 = "0" ]; then + menus fi done } @@ -385,12 +474,12 @@ info(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo " Information" @@ -405,12 +494,15 @@ info(){ echo "" echo " Created by Ryan Wong" echo "" - echo "press q to go back" echo "" - read -p "> " input4 - if [ $input4 = "q" ]; then - mainmenu + options=("Back") + + select_option "${options[@]}" + choice5=$? + + if [ $choice5 = "0" ]; then + menus fi done } @@ -422,47 +514,43 @@ options(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" echo "" echo " Options (1/2)" echo " -------" - echo " 1) Mount / Unmount EFI" - echo " 2) Enable / Disable Gatekeeper" - echo " 3) Disable Hibernation" - echo " 4) Force Reboot" - echo " 5) Force Shutdown" - echo " 6) Delete iMessage related files/folders" - echo " 7) CPU Stress Test" - echo "press e for next page" - echo "press q to go back" echo "" - read -p "> " input5 - if [ $input5 = "q" ]; then - mainmenu - elif [ $input5 = "e" ]; then + options=("Mount / Unmount EFI" "Enable / Disable Gatekeeper" "Disable Hibernation" + "Force Reboot" "Force Shutdown" "Delete iMessage related files/folders" "CPU Stress Test" "Next Page" "Back") + + select_option "${options[@]}" + input5=$? + + if [ $input5 = "8" ]; then + menus + elif [ $input5 = "7" ]; then options2 - elif [ $input5 = 1 ]; then + elif [ $input5 = "0" ]; then efi - elif [ $input5 = 2 ]; then + elif [ $input5 = "1" ]; then gatekeeper - elif [ $input5 = 3 ]; then + elif [ $input5 = "2" ]; then hibernation - elif [ $input5 = 4 ]; then + elif [ $input5 = "3" ]; then reboot1 - elif [ $input5 = 5 ]; then + elif [ $input5 = "4" ]; then shutdown1 - elif [ $input5 = 6 ]; then + elif [ $input5 = "5" ]; then imessage - elif [ $input5 = 7 ]; then + elif [ $input5 = "6" ]; then stress fi done @@ -474,34 +562,39 @@ options2(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" echo "" echo " Options (2/2)" echo " -------" - echo " 1) Undervolt" echo "" echo "" echo "" echo "" echo "" echo "" - echo "press w for previous page" - echo "press q to go back" echo "" - read -p "> " input51 - if [ $input51 = "q" ]; then - mainmenu - elif [ $input51 = "w" ]; then + echo "" + echo "" + echo "" + + options=("Undervolt" "Previous Page" "Back") + + select_option "${options[@]}" + input51=$? + + if [ $input51 = "2" ]; then + menus + elif [ $input51 = "1" ]; then options - elif [ $input51 = 1 ]; then + elif [ $input51 = "0" ]; then undervolt fi done @@ -513,12 +606,12 @@ undervolt(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -526,24 +619,25 @@ undervolt(){ echo " Undervolt" echo " ---------" echo "" - echo " 1) Load VoltageShift.kext v1.25" - echo " 2) Voltage Info" - echo " 3) Undervolt Settings" echo "" printf "${RED}${bold}" echo " NOTE: THIS TOOL IS FOR ADVANCED USERS AND MAY DAMAGE YOUR COMPUTER PERMANENTLY" printf "${NC}${normal}" echo "" - echo "press q to go back" echo "" - read -p "> " input5a - if [ $input5a = "q" ]; then + + options=("Load VoltageShift.kext v1.25" "Voltage Info" "Undervolt Settings" "Back") + + select_option "${options[@]}" + input5a=$? + + if [ $input5a = "3" ]; then options2 - elif [ $input5a = 1 ]; then + elif [ $input5a = "0" ]; then undervolt1 - elif [ $input5a = 2 ]; then + elif [ $input5a = "1" ]; then undervolt2 - elif [ $input5a = 3 ]; then + elif [ $input5a = "2" ]; then undervolt3 fi done @@ -555,12 +649,12 @@ undervolt1(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -576,10 +670,14 @@ undervolt1(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " input5b - if [ $input5b = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + input5b=$? + + if [ $input5b = "0" ]; then undervolt fi done @@ -597,12 +695,12 @@ undervolt3(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -619,21 +717,26 @@ undervolt3(){ echo "" echo "press q to go back" echo "" - read -p "> " input5c - if [ $input5c = "q" ]; then + + options=("CPU Core" "CPU Cache" "GPU" "System Agency" "Analog I/O" "Digital I/O" "Back") + + select_option "${options[@]}" + input5c=$? + + if [ $input5c = "6" ]; then undervolt - elif [ $input5c = 1 ]; then + elif [ $input5c = "0" ]; then while true; do /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -659,12 +762,12 @@ undervolt3(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; printf "${NC}${normal}" echo "" echo " CPU Core Offset" @@ -673,26 +776,29 @@ undervolt3(){ echo "" echo " CPU Core offset changed to $cpucoreoffset mV" echo "" - echo "press q to go back" echo "" - read -p "> " input5c1a - if [ $input5c1a = "q" ]; then + options=("Back") + + select_option "${options[@]}" + input5c1a=$? + + if [ $input5c1a = "0" ]; then undervolt3 fi fi done - elif [ $input5c = 2 ]; then + elif [ $input5c = "1" ]; then while true; do /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -718,12 +824,12 @@ undervolt3(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; printf "${NC}${normal}" echo "" echo " CPU Cache Offset" @@ -732,26 +838,29 @@ undervolt3(){ echo "" echo " CPU Cache offset changed to $cpucacheoffset mV" echo "" - echo "press q to go back" echo "" - read -p "> " input5c2a - if [ $input5c2a = "q" ]; then + options=("Back") + + select_option "${options[@]}" + input5c2a=$? + + if [ $input5c2a = "0" ]; then undervolt3 fi fi done - elif [ $input5c = 3 ]; then + elif [ $input5c = "2" ]; then while true; do /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -777,12 +886,12 @@ undervolt3(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; printf "${NC}${normal}" echo "" echo " GPU Offset" @@ -791,26 +900,29 @@ undervolt3(){ echo "" echo " GPU offset changed to $gpuoffset mV" echo "" - echo "press q to go back" echo "" - read -p "> " input5c3a + options=("Back") + + select_option "${options[@]}" + input5c3a=$? + if [ $input5c3a = "q" ]; then undervolt3 fi fi done - elif [ $input5c = 4 ]; then + elif [ $input5c = "3" ]; then while true; do /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -836,12 +948,12 @@ undervolt3(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; printf "${NC}${normal}" echo "" echo " System Agent Offset" @@ -850,26 +962,29 @@ undervolt3(){ echo "" echo " System Agent offset changed to $saoffset mV" echo "" - echo "press q to go back" echo "" - read -p "> " input5c4a - if [ $input5c4a = "q" ]; then + options=("Back") + + select_option "${options[@]}" + input5c4a=$? + + if [ $input5c4a = "0" ]; then undervolt3 fi fi done - elif [ $input5c = 5 ]; then + elif [ $input5c = "4" ]; then while true; do /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -895,12 +1010,12 @@ undervolt3(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; printf "${NC}${normal}" echo "" echo " Analog I/O Offset" @@ -909,26 +1024,29 @@ undervolt3(){ echo "" echo " Analog I/O offset changed to $aiooffset mV" echo "" - echo "press q to go back" echo "" - read -p "> " input5c5a - if [ $input5c5a = "q" ]; then + options=("Back") + + select_option "${options[@]}" + input5c5a=$? + + if [ $input5c5a = "0" ]; then undervolt3 fi fi done - elif [ $input5c = 6 ]; then + elif [ $input5c = "5" ]; then while true; do /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -954,12 +1072,12 @@ undervolt3(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; printf "${NC}${normal}" echo "" echo " Digital I/O Offset" @@ -968,10 +1086,13 @@ undervolt3(){ echo "" echo " Digital I/O offset changed to $diooffset mV" echo "" - echo "press q to go back" echo "" - read -p "> " input5c6a - if [ $input5c6a = "q" ]; then + options=("Back") + + select_option "${options[@]}" + input5c6a=$? + + if [ $input5c6a = "0" ]; then undervolt3 fi fi @@ -986,19 +1107,22 @@ undervolt2(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; printf "${NC}${normal}" ./voltageshift info echo "" - echo "press q to go back" echo "" - read -p "> " input5d - if [ $input5d = "q" ]; then + options=("Back") + + select_option "${options[@]}" + input5d=$? + + if [ $input5d = "0" ]; then undervolt fi done @@ -1010,12 +1134,12 @@ efi(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -1024,28 +1148,28 @@ efi(){ echo " -------------------" echo "" echo "" - echo " 1) Mount EFI" - echo " 2) Unmount EFI" echo "" echo "" echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " in3 + options=("Mount EFI" "Unmount EFI" "Back") + + select_option "${options[@]}" + in3=$? - if [ $in3 = 1 ]; then + if [ $in3 = "0" ]; then /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -1071,12 +1195,12 @@ efi(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -1089,10 +1213,13 @@ efi(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " in5 - if [ $in5 = "q" ]; then + options=("Back") + + select_option "${options[@]}" + in5=$? + + if [ $in5 = "0" ]; then efi fi @@ -1101,12 +1228,12 @@ efi(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -1119,25 +1246,28 @@ efi(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " in6 + options=("Back") + + select_option "${options[@]}" + in6=$? + if [ $in6 = "q" ]; then efi fi fi - elif [ $in3 = 2 ]; then + elif [ $in3 = "1" ]; then /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -1164,12 +1294,12 @@ efi(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -1184,10 +1314,13 @@ efi(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " in8 - if [ $in8 = "q" ]; then + options=("Back") + + select_option "${options[@]}" + in8=$? + + if [ $in8 = "0" ]; then efi fi @@ -1196,12 +1329,12 @@ efi(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -1216,15 +1349,18 @@ efi(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " in9 - if [ $in9 = "q" ]; then + options=("Back") + + select_option "${options[@]}" + in9=$? + + if [ $in9 = "0" ]; then efi fi fi - elif [ $in3 = "q" ]; then + elif [ $in3 = "2" ]; then options fi done @@ -1236,12 +1372,12 @@ gatekeeper(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -1257,23 +1393,25 @@ gatekeeper(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " i - if [ $i = 1 ]; then + options=("Enable GateKeeper" "Disable GateKeeper" "Back") + + select_option "${options[@]}" + i=$? + + if [ $i = "0" ]; then /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" - echo "" echo " Enable GateKeeper" echo " -----------------" @@ -1286,23 +1424,26 @@ gatekeeper(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " ii - if [ $ii = "q" ]; then + options=("Back") + + select_option "${options[@]}" + ii=$? + + if [ $ii = "0" ]; then gatekeeper fi - elif [ $i = 2 ]; then + elif [ $i = "1" ]; then /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -1318,13 +1459,16 @@ gatekeeper(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " iii - if [ $iii = "q" ]; then + options=("Back") + + select_option "${options[@]}" + iii=$? + + if [ $iii = "0" ]; then gatekeeper fi - elif [ $i = "q" ]; then + elif [ $i = "2" ]; then options fi done @@ -1336,12 +1480,12 @@ hibernation(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; printf "${NC}${normal}" echo " Disabling Hibernation" echo " ---------------------" @@ -1353,10 +1497,13 @@ hibernation(){ echo "" echo " Hibernation disabled" echo "" - echo "press q to go back" echo "" - read -p "> " ii - if [ $ii = "q" ]; then + options=("Back") + + select_option "${options[@]}" + ii=$? + + if [ $ii = "0" ]; then options fi done @@ -1372,12 +1519,12 @@ reboot1(){ echo "" echo "" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" echo "" printf "${NC}${normal}\n" @@ -1385,15 +1532,17 @@ reboot1(){ echo " (Any unsaved progress will be lost)" echo "" printf " Are you sure?\n" - echo " (Y/N) " echo "" echo "" echo "" - read -p "> " in + options=("Yes" "No") - if [ $in = "y" ] || [ $in = "Y" ]; then + select_option "${options[@]}" + in=$? + + if [ $in = "0" ]; then sudo shutdown -r now - elif [ $in = "n" ] || [ $in = "N" ]; then + elif [ $in = "1" ]; then options fi done @@ -1409,12 +1558,12 @@ shutdown1(){ echo "" echo "" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" echo "" printf "${NC}${normal}\n @@ -1423,15 +1572,17 @@ shutdown1(){ echo " (Any unsaved progress will be lost)" echo "" printf " Are you sure?\n" - echo " (Y/N) " echo "" echo "" echo "" - read -p "> " in + options=("Yes" "No") + + select_option "${options[@]}" + inq=$? - if [ $in = "y" ] || [ $in = "Y" ]; then + if [ $inq = "0" ]; then sudo shutdown now - elif [ $in = "n" ] || [ $in = "N" ]; then + elif [ $inq = "1" ]; then options fi done @@ -1443,12 +1594,12 @@ imessage(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; printf "${NC}${normal}" echo "" echo " Deleting iMessage related files and folders" @@ -1465,10 +1616,13 @@ imessage(){ echo " Done. Please Reboot" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " ii - if [ $ii = "q" ]; then + options=("Back") + + select_option "${options[@]}" + iia=$? + + if [ $iia = "0" ]; then options fi done @@ -1480,30 +1634,33 @@ stress(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; printf "${NC}${normal}" echo "" echo " CPU Stress Test" echo " ---------------" echo "" - printf "${RED}${bold}WARNING: ${NC}${normal}If you want to stop CPU Stress Test, You have to type in q\n" - echo "" - echo "" echo " CPU Stress Test Started" echo "" echo "Use Intel Power Gadget to see if you are throttling, temps, package watts, utilization, etc" echo "" + echo "" + echo "" + echo "" yes > /dev/null & yes > /dev/null & yes > /dev/null & yes > /dev/null & echo "" - echo "press q to stop test and go back" echo "" - read -p "> " ii - if [ $ii = "q" ]; then + options=("Stop Test") + + select_option "${options[@]}" + ins=$? + + if [ $iis = "0" ]; then killall yes options fi diff --git a/load.sh b/load.sh new file mode 100755 index 0000000..4b4e9e7 --- /dev/null +++ b/load.sh @@ -0,0 +1,351 @@ +# +# Hakku3 Loading Screen: A totally reworked loading screen for Hakku3. +# Built using Bash version 3.2.57(1)-release +# +# The MIT License (MIT) +# +# Copyright (c) 2021 Ryan Wong +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +loading() { +if [[ $EUID -ne 0 ]]; then + /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' + printf "$color" + echo "$build $version" + echo "" + echo "" + echo "" + echo "" + echo "" + echo "" + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; + echo "" + echo " Ryan Wong 2021" + printf "${RED}${bold}" + echo "" + echo "" + echo " ⃠" + printf "${RED}${bold} [ERROR] ${NC}${normal}This script must be run as root!\n" + echo "" + echo "" + echo "" + echo "" + exit 1 +elif [[ $EUID -ne 1 ]]; then + /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' + printf "$color" + echo "$build $version" + echo "" + echo "" + echo "" + echo "" + echo "" + echo "" + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; + echo "" + echo " Ryan Wong 2021" + echo "" + printf "${NC}${normal}" + echo '# (1%)\r\c' + if + command -v brew > /dev/null ; then + echo ' # (2%)\r\c' + if command -v jq > /dev/null ; then + echo ' # (5%)\r\c' + if command -v wget > /dev/null ; then + echo ' ## (10%)\r\c' + if command -v curl > /dev/null ; then + echo ' ## (15%)\r\c' + bashv=$BASH_VERSION + echo ' ## (17%)\r\c' + if [[ "$(kmutil showloaded --variant-suffix release | grep -F -e "FakeSMC" -e "VirtualSMC")" != "" ]]; then + model="Hackintosh ($(sysctl -n hw.model))" + echo ' ### (20%)\r\c' + cpu=$(sysctl -n machdep.cpu.brand_string) + echo ' #### (25%)\r\c' + gpu="$(system_profiler SPDisplaysDataType |\ + awk -F': ' '/^\ *Chipset Model:/ {printf $2 ", "}')" + gpu="${gpu//\/ \$}" + gpu="${gpu%,*}" + echo ' #### (30%)\r\c' + ram="$(system_profiler SPHardwareDataType |\ + awk -F': ' '/^\ *Memory:/ {printf $2 ", "}')" + ram="${ram//\/ \$}" + ram="${ram%,*}" + echo ' ##### (40%)\r\c' + kernel=$(uname -r) + echo ' ##### (45%)\r\c' + batt=$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1) + if [ "$batt" -le "20" ]; then + low="Low Battery" + elif [ "$batt" -ge "100" ]; then + full="Fully Charged" + else + printf "" + fi + battcon=$(system_profiler SPPowerDataType | grep "Condition" | awk '{print $2}') + echo ' ####### (50%)\r\c' + dtype="$(diskutil info / |\ + awk -F': ' '/^\ *File System Personality:/ {printf $2 ", "}')" + dtype="${dtype//\/ \$}" + dtype="${dtype%,*}" + + nvme="$(system_profiler SPNVMeDataType |\ + awk -F': ' '/^\ *Model:/ {printf $2 ", "}')" + nvme="${nvme//\/ \$}" + nvme="${nvme%,*}" + sata="$(system_profiler SPSerialATADataType |\ + awk -F': ' '/^\ *Model:/ {printf $2 ", "}')" + sata="${sata//\/ \$}" + sata="${sata%,*}" + echo ' ####### (55%)\r\c' + OS=$(sw_vers -productVersion) + if [ $OS == "10.14.0" ] || [ $OS == "10.14.1" ] || [ $OS == "10.14.2" ] || [ $OS == "10.14.3" ] || [ $OS == "10.14.4" ] || [ $OS == "10.14.5" ]; then + name="(Mojave)" + elif [ $OS == "10.13.0" ] || [ $OS == "10.13.1" ] || [ $OS == "10.13.2" ] || [ $OS == "10.13.3" ] || [ $OS == "10.13.4" ] || [ $OS == "10.13.5" ] || [ $OS == "10.13.6" ]; then + name="(High Sierra)" + elif [ $OS == "10.12.0" ] || [ $OS == "10.12.1" ] || [ $OS == "10.12.2" ] || [ $OS == "10.12.3" ] || [ $OS == "10.12.4" ] || [ $OS == "10.12.5" ] || [ $OS == "10.12.6" ]; then + name="(Sierra)" + elif [ $OS == "10.15" ] || [ $OS == "10.15.1" ] || [ $OS == "10.15.2" ] || [ $OS == "10.15.3" ] || [ $OS == "10.15.4" ] || [ $OS == "10.15.5" ] || [ $OS == "10.15.6" ] || [ $OS == "10.15.7" ]; then + name="(Catalina)" + elif [ $OS == "11.0" ] || [ $OS == "11.0.1" ] || [ $OS == "11.1" ] || [ $OS == "11.2" ] || [ $OS == "11.2.1" ] || [ $OS == "11.2.2" ] || [ $OS == "11.2.3" ]; then + name="(Big Sur)" + elif [ $OS == "11.3" ]; then + name="(Big Sur Beta)" + else + name="(Unknown)" + fi + echo ' ######### (60%)\r\c' + + check=0 + check1=0 + check2=0 + + if [ -e settings_f.sh ]; then + echo ' ########### (65%)\r\c' + if [ -e tweaks_f.sh ]; then + echo ' ############# (70%)\r\c' + if [ -e update_f.sh ]; then + echo ' ############### (80%)\r\c' + echo ' ################## (100%)\r\c' + echo '\n' + + else + check2=1 + printf "${RED}${bold}" + echo "" + echo "" + echo " ⃠" + printf "${RED}${bold} [ERROR] ${NC}${normal}Failed to find Settings Extension\n" + echo "" + echo "" + echo "" + exit 0 + fi + else + check1=1 + printf "${RED}${bold}" + echo "" + echo "" + echo " ⃠" + printf "${RED}${bold} [ERROR] ${NC}${normal}Failed to find Tweaks Extension\n" + echo "" + echo "" + echo "" + exit 0 + fi + else + check=1 + printf "${RED}${bold}" + echo "" + echo "" + echo " ⃠" + printf "${RED}${bold} [ERROR] ${NC}${normal}Failed to find Update Extension\n" + echo "" + echo "" + echo "" + exit 0 + fi + else + model="$(sysctl -n hw.model)" + echo ' ### (20%)\r\c' + cpu=$(sysctl -n machdep.cpu.brand_string) + echo ' #### (25%)\r\c' + gpu="$(system_profiler SPDisplaysDataType |\ + awk -F': ' '/^\ *Chipset Model:/ {printf $2 ", "}')" + gpu="${gpu//\/ \$}" + gpu="${gpu%,*}" + echo ' #### (30%)\r\c' + ram="$(system_profiler SPHardwareDataType |\ + awk -F': ' '/^\ *Memory:/ {printf $2 ", "}')" + ram="${ram//\/ \$}" + ram="${ram%,*}" + echo ' ##### (40%)\r\c' + kernel=$(uname -r) + echo ' ##### (45%)\r\c' + batt=$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1) + if [ "$batt" -le "20" ]; then + low="Low Battery" + elif [ "$batt" -ge "100" ]; then + full="Fully Charged" + else + printf "" + fi + battcon=$(system_profiler SPPowerDataType | grep "Condition" | awk '{print $2}') + echo ' ####### (50%)\r\c' + dtype="$(diskutil info / |\ + awk -F': ' '/^\ *File System Personality:/ {printf $2 ", "}')" + dtype="${dtype//\/ \$}" + dtype="${dtype%,*}" + + nvme="$(system_profiler SPNVMeDataType |\ + awk -F': ' '/^\ *Model:/ {printf $2 ", "}')" + nvme="${nvme//\/ \$}" + nvme="${nvme%,*}" + sata="$(system_profiler SPSerialATADataType |\ + awk -F': ' '/^\ *Model:/ {printf $2 ", "}')" + sata="${sata//\/ \$}" + sata="${sata%,*}" + echo ' ####### (55%)\r\c' + OS=$(sw_vers -productVersion) + if [ $OS == "10.14.0" ] || [ $OS == "10.14.1" ] || [ $OS == "10.14.2" ] || [ $OS == "10.14.3" ] || [ $OS == "10.14.4" ] || [ $OS == "10.14.5" ]; then + name="(Mojave)" + elif [ $OS == "10.13.0" ] || [ $OS == "10.13.1" ] || [ $OS == "10.13.2" ] || [ $OS == "10.13.3" ] || [ $OS == "10.13.4" ] || [ $OS == "10.13.5" ] || [ $OS == "10.13.6" ]; then + name="(High Sierra)" + elif [ $OS == "10.12.0" ] || [ $OS == "10.12.1" ] || [ $OS == "10.12.2" ] || [ $OS == "10.12.3" ] || [ $OS == "10.12.4" ] || [ $OS == "10.12.5" ] || [ $OS == "10.12.6" ]; then + name="(Sierra)" + elif [ $OS == "10.15" ] || [ $OS == "10.15.1" ] || [ $OS == "10.15.2" ] || [ $OS == "10.15.3" ] || [ $OS == "10.15.4" ] || [ $OS == "10.15.5" ] || [ $OS == "10.15.6" ] || [ $OS == "10.15.7" ]; then + name="(Catalina)" + elif [ $OS == "11.0" ] || [ $OS == "11.0.1" ] || [ $OS == "11.1" ] || [ $OS == "11.2" ] || [ $OS == "11.2.1" ] || [ $OS == "11.2.2" ] || [ $OS == "11.2.3" ]; then + name="(Big Sur)" + elif [ $OS == "11.3" ]; then + name="(Big Sur Beta)" + else + name="(Unknown)" + fi + echo ' ######### (60%)\r\c' + + check=0 + check1=0 + check2=0 + + if [ -e settings_f.sh ]; then + echo ' ########### (65%)\r\c' + if [ -e tweaks_f.sh ]; then + echo ' ############# (70%)\r\c' + if [ -e update_f.sh ]; then + echo ' ############### (80%)\r\c' + echo ' ################## (100%)\r\c' + echo '\n' + else + check2=1 + printf "${RED}${bold}" + echo "" + echo "" + echo " ⃠" + printf "${RED}${bold} [ERROR] ${NC}${normal}Failed to find Settings Extension\n" + echo "" + echo "" + echo "" + exit 0 + fi + else + check1=1 + printf "${RED}${bold}" + echo "" + echo "" + echo " ⃠" + printf "${RED}${bold} [ERROR] ${NC}${normal}Failed to find Tweaks Extension\n" + echo "" + echo "" + echo "" + exit 0 + fi + else + check=1 + printf "${RED}${bold}" + echo "" + echo "" + echo " ⃠" + printf "${RED}${bold} [ERROR] ${NC}${normal}Failed to find Update Extension\n" + echo "" + echo "" + echo "" + exit 0 + fi + fi + else + printf "${RED}${bold}" + echo "" + echo "" + echo " ⃠" + echo "Curl should be installed with macOS" + printf "${RED}${bold} [ERROR] ${NC}${normal}curl is not installed\n" + echo "" + echo "" + exit 0 + fi + else + printf "${RED}${bold}" + echo "" + echo "" + echo " ⃠" + echo "Install wget with 'brew install wget'" + printf "${RED}${bold} [ERROR] ${NC}${normal}wget is not installed\n" + echo "" + echo "" + exit 0 + fi + else + printf "${RED}${bold}" + echo "" + echo "" + echo " ⃠" + echo "Install jq with 'brew install jq'" + printf "${RED}${bold} [ERROR] ${NC}${normal}jq is not installed\n" + echo "" + echo "" + exit 0 + fi + else + printf "${RED}${bold}" + echo "" + echo "" + echo " ⃠" + printf "${RED}${bold} [ERROR] ${NC}${normal}HomeBrew is not installed\n" + echo "" + echo "" + exit 0 + fi + +fi +sleep 1 +mainmenu +} diff --git a/perm.sh b/perm.sh index 73caba7..c8edd1b 100755 --- a/perm.sh +++ b/perm.sh @@ -1,6 +1,5 @@ -#!/bin/bash # -# Sets pemissions for the Hakku2 Tool +# Sets pemissions for the Hakku3 Tool # # The MIT License (MIT) # @@ -36,16 +35,26 @@ bold=$(tput bold) normal=$(tput sgr0) if [[ $EUID -ne 0 ]]; then - printf "${RED}${bold}[ERROR] ${NC}${normal}This script must be run as root\n" + printf "${RED}${bold}[ERROR] ${NC}${normal}This script must be run as root!\n" exit 1 elif [[ $EUID -ne 1 ]]; then echo "" fi printf "${GREEN}${bold}[INFO] ${NC}${normal}Setting Permissions...\n" -sudo chmod +x ./Hakku2.sh -sudo chmod +x ./functions.sh +echo '# (10%)\r\c' +echo '## (20%)\r\c' +sudo chmod +x ./Hakku3.sh +echo '### (30%)\r\c' +sudo chmod +x ./load.sh +echo '#### (40%)\r\c' sudo chmod +x ./settings_f.sh +echo '##### (50%)\r\c' sudo chmod +x ./update_f.sh +echo '######## (80%)\r\c' sudo chmod +x ./tweaks_f.sh +echo '######### (90%)\r\c' +sudo chmod +x ./functions.sh +echo '########## (100%)\r\c' +echo '\n' printf "${GREEN}${bold}[INFO] ${NC}${normal}Finished setting permissions!\n" diff --git a/settings_f.sh b/settings_f.sh index 94e1236..acdcfba 100755 --- a/settings_f.sh +++ b/settings_f.sh @@ -1,6 +1,5 @@ -#!/bin/bash # -# Hakku2 Settings Functions: A totally reworked command line utility which shows +# Hakku3 Settings Functions: A totally reworked command line utility which shows # the user their system info and a bunch of useful # tools and tweaks. # Built using Bash version 3.2.57(1)-release @@ -27,18 +26,76 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +function select_option { + + # little helpers for terminal print control and key input + ESC=$( printf "\033") + cursor_blink_on() { printf "$ESC[?25h"; } + cursor_blink_off() { printf "$ESC[?25l"; } + cursor_to() { printf "$ESC[$1;${2:-1}H"; } + print_option() { printf " $1 "; } + print_selected() { printf " $ESC[7m $1 $ESC[27m"; } + get_cursor_row() { IFS=';' read -sdR -p $'\E[6n' ROW COL; echo ${ROW#*[}; } + key_input() { read -s -n3 key 2>/dev/null >&2 + if [[ $key = $ESC[A ]]; then echo up; fi + if [[ $key = $ESC[B ]]; then echo down; fi + if [[ $key = "" ]]; then echo enter; fi; } + + # initially print empty new lines (scroll down if at bottom of screen) + for opt; do printf "\n"; done + + # determine current screen position for overwriting the options + local lastrow=`get_cursor_row` + local startrow=$(($lastrow - $#)) + + # ensure cursor and input echoing back on upon a ctrl+c during read -s + trap "cursor_blink_on; stty echo; printf '\n'; exit" 2 + cursor_blink_off + + local selected=0 + while true; do + # print options by overwriting the last lines + local idx=0 + for opt; do + cursor_to $(($startrow + $idx)) + if [ $idx -eq $selected ]; then + print_selected "$opt" + else + print_option "$opt" + fi + ((idx++)) + done + + # user key control + case `key_input` in + enter) break;; + up) ((selected--)); + if [ $selected -lt 0 ]; then selected=$(($# - 1)); fi;; + down) ((selected++)); + if [ $selected -ge $# ]; then selected=0; fi;; + esac + done + + # cursor position back to normal + cursor_to $lastrow + printf "\n" + cursor_blink_on + + return $selected +} + settings(){ while true; do /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -46,22 +103,25 @@ settings(){ echo " --------" echo "" echo "" - echo " 1) VoiceOver" - echo " 2) Change Color of Logo" echo "" echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " op - if [ $op = 1 ]; then + options=("VoiceOver" "Change Color of Logo" "Verbose Mode" "Back") + + select_option "${options[@]}" + set1=$? + + if [ $set1 = "0" ]; then voiceover - elif [ $op = 2 ]; then + elif [ $set1 = "1" ]; then colorlogo - elif [ $op = "q" ]; then - mainmenu + elif [ $set1 = "2" ]; then + verbose + elif [ $set1 = "3" ]; then + menus fi done } @@ -72,12 +132,12 @@ voiceover(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -91,22 +151,22 @@ voiceover(){ echo "" echo "" echo "" - echo "" - echo "press q to go back" - echo "" - read -p "> " op1 + options=("Enable" "Disable" "Back") + + select_option "${options[@]}" + set2=$? - if [ $op1 = 1 ]; then + if [ $set2 = "0" ]; then /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -122,24 +182,27 @@ voiceover(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " op11 - if [ $op11 = "q" ]; then + options=("Back") + + select_option "${options[@]}" + set4=$? + + if [ $set4 = "0" ]; then voiceover fi - elif [ $op1 = 2 ]; then + elif [ $set2 = "1" ]; then /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -154,13 +217,17 @@ voiceover(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " op12 - if [ $op12 = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + set5=$? + + if [ $set5 = "0" ]; then voiceover fi - elif [ $op1 = "q" ]; then + elif [ $set2 = "2" ]; then settings fi done @@ -172,12 +239,12 @@ colorlogo(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -185,28 +252,26 @@ colorlogo(){ echo " ---------------------" echo "" echo "" - echo " 1) Original" - echo " 2) Red" - echo " 3) Blue" - echo " 4) Green" - echo " 5) White" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " op2 - if [ $op2 = 1 ]; then + options=("Original" "Red" "Violet" "Green" "White" "Back") + + select_option "${options[@]}" + set6=$? + + if [ $set6 = "0" ]; then /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -222,24 +287,27 @@ colorlogo(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " op2a - if [ $op2a = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + set7=$? + if [ $set7 = "0" ]; then colorlogo fi - elif [ $op2 = 2 ]; then + elif [ $set6 = "1" ]; then /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -255,24 +323,27 @@ colorlogo(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " op2b - if [ $op2b = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + set8=$? + if [ $set8 = "0" ]; then colorlogo fi - elif [ $op2 = 3 ]; then + elif [ $set6 = "2" ]; then /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -283,29 +354,32 @@ colorlogo(){ echo "" color="${BLUE}${bold}" echo "" - echo " Changed Logo Color to Blue" + echo " Changed Logo Color to Violet" echo "" echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " op2c - if [ $op2c = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + set9=$? + if [ $set9 = "0" ]; then colorlogo fi - elif [ $op2 = 4 ]; then + elif [ $set6 = "3" ]; then /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -321,24 +395,27 @@ colorlogo(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " op2d - if [ $op2d = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + set0=$? + if [ $set0 = "0" ]; then colorlogo fi - elif [ $op2 = 5 ]; then + elif [ $set6 = "4" ]; then /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -354,15 +431,121 @@ colorlogo(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " op2e - if [ $op2e = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + set10=$? + if [ $set10 = "0" ]; then colorlogo fi - elif [ $op2 = "q" ]; then + elif [ $set6 = "5" ]; then settings fi done } + +verbose(){ + while true; do + /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' + printf "$color" + echo " $version" + echo "" + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; + echo "" + printf "${NC}${normal}" + echo "" + echo " Verbose" + echo " ---------" + echo "" + echo "" + echo " 1) Enable" + echo " 2) Disable" + echo "" + echo "" + echo "" + echo "" + options=("Enable" "Disable" "Back") + select_option "${options[@]}" + set12=$? + + if [ $set12 = "0" ]; then + /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' + printf "$color" + echo " $version" + echo "" + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; + echo "" + printf "${NC}${normal}" + echo "" + echo " Verbose" + echo " ---------" + echo "" + start=refresh + echo " Enabled Verbose Mode" + echo "" + echo "" + echo "" + echo "" + echo "" + echo "" + options=("Back") + select_option "${options[@]}" + set121=$? + + if [ $set121 = "0" ]; then + verbose + fi + + elif [ $set12 = "1" ]; then + /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' + printf "$color" + echo " $version" + echo "" + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; + echo "" + printf "${NC}${normal}" + echo "" + echo " Verbose" + echo " ---------" + echo "" + start=loading + echo " Disabled Verbose Mode" + echo "" + echo "" + echo "" + echo "" + echo "" + echo "" + options=("Back") + select_option "${options[@]}" + set122=$? + + if [ $set122= "0" ]; then + verbose + fi + + elif [ $set12 = "2" ]; then + settings + fi + + + done +} diff --git a/tweaks_f.sh b/tweaks_f.sh index d41a027..30496ad 100755 --- a/tweaks_f.sh +++ b/tweaks_f.sh @@ -1,6 +1,5 @@ -#!/bin/bash # -# Hakku2 Tweaks Functions: A totally reworked command line utility which shows +# Hakku3 Tweaks Functions: A totally reworked command line utility which shows # the user their system info and a bunch of useful # tools and tweaks. # Built using Bash version 3.2.57(1)-release @@ -39,27 +38,30 @@ risk(){ echo " ██║ ╚███╔███╔╝███████╗██║ ██║██║ ██╗███████║"; echo " ╚═╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝"; echo "" - echo " Ryan Wong 2019" + echo " Ryan Wong 2021" echo "" printf "${RED}${bold} --------------------------------------------\n" printf "${RED}${bold} WARNING:\n" - printf "${RED}${normal} I am not responsible for any damage that\n" - printf "${RED}${normal} may be caused by using these tweaks\n" + printf "${RED}${normal} I am not responsible for any damage that\n" + printf "${RED}${normal} may be caused by using these tweaks\n" printf "${RED}${bold} --------------------------------------------\n" - printf "${NC}${normal} 1) I agree 2) Exit\n" + printf "${NC}${normal}\n" say "$vo" echo "" echo "" echo "" echo "" echo "" - echo "" - echo "" - read -p "> " w - if [ $w = 1 ]; then + + options=("I Agree" "Exit") + + select_option "${options[@]}" + t1=$? + + if [ $t1 = "0" ]; then tweaks - elif [ $w = 2 ]; then - mainmenu + elif [ $t1 = "1" ]; then + menus fi done } @@ -76,42 +78,39 @@ tweaks(){ echo " ██║ ╚███╔███╔╝███████╗██║ ██║██║ ██╗███████║"; echo " ╚═╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝"; echo "" - printf "${NC}${normal}" + printf "${RED}${bold} If you don't know what an option does, don't press it\n" + printf "${NC}${normal}\n" echo "" - echo " 1) Chime When Charging" - echo " 2) Auto Restart on System Freeze" - echo " 3) Force Enable Trim (On non-Apple SSDs)" - echo " 4) Rebuild KextCache" - echo " 5) Show Hidden Files" - echo " 6) Clear DNS Cache" - echo " 7) Purge Memory Cache" - echo " 8) Enable / Disable Root User" - echo " 9) Erase Spotlight Index and Rebuild" echo "" - printf "${RED}${bold} If you don't know what an option does, don't press it\n" echo "" - printf "${NC}${normal}press q to go back\n" + echo "" - read -p "> " www - if [ $www = "q" ]; then - mainmenu - elif [ $www = 1 ]; then + options=("Chime When Charging" "Auto Restart on System Freeze" "Rebuild KextCache" + "Show Hidden Files" "Clear DNS Cache" "Purge Memory Cache" "Enable / Disable Root User" + "Erase Spotlight Index and Rebuild" "Back") + + select_option "${options[@]}" + www=$? + + if [ $www = "8" ]; then + menus + elif [ $www = "0" ]; then chime - elif [ $www = 2 ]; then + elif [ $www = "1" ]; then rsf - elif [ $www = 3 ]; then + elif [ $www = "2" ]; then trim - elif [ $www = 4 ]; then + elif [ $www = "3" ]; then kextcache - elif [ $www = 5 ]; then + elif [ $www = "4" ]; then hiddenfiles - elif [ $www = 6 ]; then + elif [ $www = "5" ]; then dnscache - elif [ $www = 7 ]; then + elif [ $www = "6" ]; then memcache - elif [ $www = 8 ]; then + elif [ $www = "7" ]; then rootusr - elif [ $www = 9 ]; then + elif [ $www = "8" ]; then spotlight fi done @@ -138,20 +137,22 @@ chime(){ echo "" echo "" echo "" - echo " 1. Enable" - echo " 2. Disable" echo "" echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www1 - if [ $www1 = 1 ]; then + + options=("Enable" "Disable" "Back") + + select_option "${options[@]}" + www1=$? + + if [ $www1 = "0" ]; then chime1 - elif [ $www1 = 2 ]; then + elif [ $www1 = "1" ]; then chime2 - elif [ $www1 = "q" ]; then + elif [ $www1 = "2" ]; then tweaks fi done @@ -185,10 +186,14 @@ chime1(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www1a - if [ $www1a = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + www1a=$? + + if [ $www1a = "0" ]; then chime fi done @@ -222,10 +227,14 @@ chime2(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www1b - if [ $www1b = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + www1b=$? + + if [ $www1b = "0" ]; then chime fi done @@ -252,20 +261,22 @@ rsf(){ echo "" echo "" echo "" - echo " 1. Enable" - echo " 2. Disable" echo "" echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www2 - if [ $www2 = 1 ]; then + + options=("Enable" "Disable" "Back") + + select_option "${options[@]}" + www2=$? + + if [ $www2 = "0" ]; then rsf1 - elif [ $www2 = 2 ]; then + elif [ $www2 = "1" ]; then rsf2 - elif [ $www2 = "q" ]; then + elif [ $www2 = "2" ]; then tweaks fi done @@ -298,10 +309,14 @@ rsf1(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www2a - if [ $www2a = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + www2a=$? + + if [ $www2a = "0" ]; then rsf fi done @@ -334,10 +349,14 @@ rsf2(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www2b - if [ $www2b = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + www2b=$? + + if [ $www2b = "0" ]; then rsf fi done @@ -371,10 +390,14 @@ trim(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www3 - if [ $www3 = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + www3=$? + + if [ $www3 = "0" ]; then tweaks fi done @@ -402,19 +425,21 @@ hiddenfiles(){ echo " ------------------------" echo "" echo "" - echo " 1. Enable" - echo " 2. Disable" echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www5 - if [ $www5 = 1 ]; then + + options=("Enable" "Disable" "Back") + + select_option "${options[@]}" + www5=$? + + if [ $www5 = "0" ]; then hiddenfiles1 - elif [ $www5 = 2 ]; then + elif [ $www5 = "1" ]; then hiddenfiles2 - elif [ $www5 = "q" ]; then + elif [ $www5 = "2" ]; then tweaks fi done @@ -447,9 +472,13 @@ hiddenfiles1(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www5a + + options=("Back") + + select_option "${options[@]}" + www5a=$? + if [ $www5a = "q" ]; then hiddenfiles fi @@ -483,10 +512,14 @@ hiddenfiles2(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www5b - if [ $www5b = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + www5b=$? + + if [ $www5b = "0" ]; then hiddenfiles fi done @@ -521,10 +554,14 @@ dnscache(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www6 - if [ $www6 = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + www6=$? + + if [ $www6 = "0" ]; then tweaks fi done @@ -558,10 +595,14 @@ memcache(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www7 - if [ $www7 = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + www7=$? + + if [ $www7 = "0" ]; then tweaks fi done @@ -588,20 +629,22 @@ rootusr(){ echo " Enable / Disable Root User" echo "" echo "" - echo " 1. Enable" - echo " 2. Disable" echo "" echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www8 - if [ $www8 = 1 ]; then + + options=("Enable" "Disable" "Back") + + select_option "${options[@]}" + www8=$? + + if [ $www8 = "0" ]; then rootusr1 - elif [ $www8 = 2 ]; then + elif [ $www8 = "1" ]; then rootusr2 - elif [ $www8 = "q" ]; then + elif [ $www8 = "2" ]; then tweaks fi done @@ -634,10 +677,14 @@ rootusr1(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www8a - if [ $www8a = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + www8a=$? + + if [ $www8a = "0" ]; then rootusr fi done @@ -670,10 +717,14 @@ rootusr2(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www8b - if [ $www8b = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + www8b=$? + + if [ $www8b = "0" ]; then rootusr fi done @@ -707,10 +758,14 @@ spotlight(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www9 - if [ $www9 = "q" ]; then + + options=("Back") + + select_option "${options[@]}" + www9=$? + + if [ $www9 = "0" ]; then tweaks fi done @@ -744,10 +799,13 @@ kextcache(){ echo "" echo "" echo "" - echo "press q to go back" echo "" - read -p "> " www10 - if [ $www10 = "q" ]; then + options=("Back") + + select_option "${options[@]}" + www10=$? + + if [ $www10 = "0" ]; then tweaks fi done diff --git a/update_f.sh b/update_f.sh index 88c6cca..14e259a 100755 --- a/update_f.sh +++ b/update_f.sh @@ -1,6 +1,5 @@ -#!/bin/bash # -# Hakku2 Update Functions: A totally reworked command line utility which shows +# Hakku3 Update Functions: A totally reworked command line utility which shows # the user their system info and a bunch of useful # tools and tweaks. # Built using Bash version 3.2.57(1)-release @@ -27,18 +26,76 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +function select_option { + + # little helpers for terminal print control and key input + ESC=$( printf "\033") + cursor_blink_on() { printf "$ESC[?25h"; } + cursor_blink_off() { printf "$ESC[?25l"; } + cursor_to() { printf "$ESC[$1;${2:-1}H"; } + print_option() { printf " $1 "; } + print_selected() { printf " $ESC[7m $1 $ESC[27m"; } + get_cursor_row() { IFS=';' read -sdR -p $'\E[6n' ROW COL; echo ${ROW#*[}; } + key_input() { read -s -n3 key 2>/dev/null >&2 + if [[ $key = $ESC[A ]]; then echo up; fi + if [[ $key = $ESC[B ]]; then echo down; fi + if [[ $key = "" ]]; then echo enter; fi; } + + # initially print empty new lines (scroll down if at bottom of screen) + for opt; do printf "\n"; done + + # determine current screen position for overwriting the options + local lastrow=`get_cursor_row` + local startrow=$(($lastrow - $#)) + + # ensure cursor and input echoing back on upon a ctrl+c during read -s + trap "cursor_blink_on; stty echo; printf '\n'; exit" 2 + cursor_blink_off + + local selected=0 + while true; do + # print options by overwriting the last lines + local idx=0 + for opt; do + cursor_to $(($startrow + $idx)) + if [ $idx -eq $selected ]; then + print_selected "$opt" + else + print_option "$opt" + fi + ((idx++)) + done + + # user key control + case `key_input` in + enter) break;; + up) ((selected--)); + if [ $selected -lt 0 ]; then selected=$(($# - 1)); fi;; + down) ((selected++)); + if [ $selected -ge $# ]; then selected=0; fi;; + esac + done + + # cursor position back to normal + cursor_to $lastrow + printf "\n" + cursor_blink_on + + return $selected +} + update(){ while true; do /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down' printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -51,15 +108,19 @@ update(){ echo "" echo "" echo "" - echo "$dl" - echo "press c to check for updates" - echo "press q to go back" echo "" - read -p "> " p - if [ $p = "q" ]; then - mainmenu - elif [ $p = "c" ]; then + echo "" + options=("Check for Updates" "Back" "$dl") + + select_option "${options[@]}" + update1=$? + + if [ $update1 = "0" ]; then check + elif [ $update1 = "1" ]; then + menus + elif [ $update1 = "2" ]; then + download fi done } @@ -70,12 +131,12 @@ download(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -92,11 +153,15 @@ download(){ echo "" echo " To install move contents from the new folder to the old folder." echo "" - echo "press q to go back" echo "" - read -p "> " pp - if [ $pp = "q" ]; then - mainmenu + + options=("Back") + + select_option "${options[@]}" + update2=$? + + if [ $update2 = "0" ]; then + menus fi done } @@ -107,12 +172,12 @@ check(){ printf "$color" echo " $version" echo "" - echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗"; - echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║"; - echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║"; - echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║"; - echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝"; - echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ "; + echo " ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗██╗ ██╗██████╗ "; + echo " ██║ ██║██╔══██╗██║ ██╔╝██║ ██╔╝██║ ██║╚════██╗"; + echo " ███████║███████║█████╔╝ █████╔╝ ██║ ██║ █████╔╝"; + echo " ██╔══██║██╔══██║██╔═██╗ ██╔═██╗ ██║ ██║ ╚═══██╗"; + echo " ██║ ██║██║ ██║██║ ██╗██║ ██╗╚██████╔╝██████╔╝"; + echo " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ "; echo "" printf "${NC}${normal}" echo "" @@ -122,13 +187,17 @@ check(){ echo "" update="$(curl --silent "https://api.github.com/repos/Rybo713/Hakku/tags" | jq -r '.[0].name')" echo "" - if [ $update = "v2.3.1-beta" ]; then + if [ $update = "v3.0.0" ]; then updating="No new updates" - printf "${GREEN}${bold} No new updates${NC}${normal}\n" + printf "${GREEN}${bold} No new updates${NC}${normal}\n" + noti="" + elif [ $update = "v2.3.1-beta" ]; then + updating="No new updates" + printf "${GREEN}${bold} No new updates${NC}${normal}\n" noti="" else updating="New updates found: ${update}" - dl="press d to download Hakku ${update}" + dl="Download Hakku ${update}" printf "${RED}${bold} New updates found: ${update}${NC}${normal}\n" noti="${RED}${bold}[1]${NC}${normal}\n" fi @@ -136,13 +205,16 @@ check(){ echo "" echo "" echo "" - echo "press d to download Hakku ${update}" - echo "press q to go back" echo "" - read -p "> " ppp - if [ $ppp = "q" ]; then + + options=("$dl" "Back") + + select_option "${options[@]}" + update3=$? + + if [ $update3 = "1" ]; then update - elif [ $ppp = "d" ]; then + elif [ $update3 = "0" ]; then download fi done