diff --git a/upscripts.sh b/upscripts.sh new file mode 100644 index 0000000..741d805 --- /dev/null +++ b/upscripts.sh @@ -0,0 +1,265 @@ +#!/bin/bash +# UbUpdate - Ubuntu Update Scripts + +action="$1" +useAutoremove=1 +FOLDER='/opt/ubuntu-upscripts' + +Color_Off='\033[0m' +Blue='\033[0;34m' +BBlue='\033[1;34m' +Green='\033[0;32m' + +if type apt &>/dev/null; then + ATYPE="apt" + if [ "$EUID" -ne 0 ]; then APTFUNC='sudo apt' + else APTFUNC='apt' + fi +elif type apt-get &>/dev/null; then + ATYPE="apt-get" + if [ "$EUID" -ne 0 ]; then APTFUNC='sudo apt-get' + else APTFUNC='apt-get' + fi +elif type yum &>/dev/null; then + ATYPE="yum" + if [ "$EUID" -ne 0 ]; then APTFUNC='sudo yum' + else APTFUNC='yum' + fi +else + ATYPE="unknown" +fi + +UPDATE1() { + if type yum &>/dev/null; then + $APTFUNC -y update + else + if [ "$useAutoremove" -ne 0 ]; then + AUTOREMOVE + $APTFUNC update + $APTFUNC upgrade -y + AUTOREMOVE + fi + fi + echo "" + echo -e "${Green}Updates have completed${Color_Off}" + if [ ${action-x} ]; then exit 0; fi + read -n 1 -s -p "Press any key to continue" +} +UPDATE2() { + if [ "$useAutoremove" -ne 0 ]; then + AUTOREMOVE + $APTFUNC upgrade -y + AUTOREMOVE + fi + echo "" + echo -e "${Green}Updated Upgrades have completed${Color_Off}" + if [ ${action-x} ]; then exit 0; fi + read -n 1 -s -p "Press any key to continue" +} +DISTUPGRADE() { + if type yum &>/dev/null; then + $APTFUNC upgrade + else + $APTFUNC dist-upgrade + fi + if [ "$useAutoremove" -ne 0 ] && type apt-get &>/dev/null; then + AUTOREMOVE + fi + echo "" + echo -e "${Green}Dist Upgrades has completed${Color_Off}" + if [ ${action-x} ]; then exit 0; fi + read -n 1 -s -p "Press any key to continue" +} +AUTOREMOVE() { + if [ "$useAutoremove" -ne 0 ]; then + if [ "$EUID" -ne 0 ]; then + sudo apt-get autoremove + else + apt-get autoremove + fi + fi +} +DRYRUN1() { + if type apt &>/dev/null; then + $APTFUNC update + $APTFUNC list --upgradable + elif type apt-get &>/dev/null; then + $APTFUNC update + $APTFUNC upgrade --dry-run + elif type yum &>/dev/null; then + $APTFUNC check-update + fi + echo "" + echo -e "${Green}Upgrade dry-run has completed${Color_Off}" + if [ ${action-x} ]; then exit 0; fi + read -n 1 -s -p "Press any key to continue" +} +DRYRUN2() { + if type yum &>/dev/null; then + $APTFUNC --obsoletes check-update + else + $APTFUNC dist-upgrade --dry-run + fi + echo "" + echo -e "${Green}Dist-Upgrade dry-run has completed${Color_Off}" + if [ ${action-x} ]; then exit 0; fi + read -n 1 -s -p "Press any key to continue" +} +GITUPDATE() { + echo "" + echo "" + echo "-------------------------------------------------------" + if [ -d "$FOLDER" ]; then + if [ "$EUID" -ne 0 ]; then sh -c 'cd $FOLDER && sudo git pull' + else sh -c 'cd $FOLDER && git pull' + fi + else + if [ "$EUID" -ne 0 ]; then sh -c 'cd $FOLDER && sudo git pull' + else sh -c 'cd $FOLDER && git pull' + fi + fi + echo "-------------------------------------------------------" + echo "" + echo "" + echo "If any updates were found above, you'll need to" + echo "restart this script to apply the new updates." + echo "" + read -n 1 -s -p "Press any key to continue" +} +GO_REBOOT() { + read -n 1 -p "Are you sure you wish to reboot (y/n)?" choice + case "$choice" in + [Yy]) if [ "$EUID" -ne 0 ]; then sudo shutdown -r now + else shutdown -r now + fi + echo 'The system is now rebooting...' + sleep 60 + exit 0;; + * ) SCRIPT_MENU;; + esac +} +SHUTDOWN() { + read -n 1 -p "Are you sure you wish to shutdown (y/n)?" choice + case "$choice" in + [Yy]) if [ "$EUID" -ne 0 ]; then sudo shutdown -h now + else shutdown -h now + fi + echo 'The system is now shutting down...' + sleep 60 + exit 0;; + * ) SCRIPT_MENU;; + esac +} +ENDISASU() { + if [ "$EUID" -ne 0 ]; then sudo dpkg-reconfigure --priority=low unattended-upgrades + else dpkg-reconfigure --priority=low unattended-upgrades + fi +} + +EXIT1() { + clear + exit 0 +} + +SCRIPT_MENU() { + while : + do + clear + echo "" + echo -e " ${BBlue}D E B I A N U P D A T E - S C R I P T S${Color_Off} ${Blue}(ver-2.09232017)${Color_Off}" + echo "-------------------------------------------------------------" + echo " $(hostname --long)" + echo "-------------------------------------------------------------" + echo "" + echo " [1] Check for Updates/Upgrades" + echo " [2] Run Updates" + if [ "$ATYPE" != 'yum' ]; then + echo " [3] Run Updates w/o retrieving new repo list" + fi + echo "" + echo " [4] Check for Upgrades with obsoletes enabled" + echo " [5] Run Dist-Upgrade" + echo "" + echo " [6] Enable/Disable Automatic Security Updates" + echo "" + echo " [R] Reboot System" + echo " [S] Shutdown System" + echo " [Q] Quit" + echo "" + echo "" + echo -e -n "${Green}Please select an [ActionItem] from above:${Color_Off} " + read -n 1 opt + echo "" + case $opt in + 1) DRYRUN1 + SCRIPT_MENU;; + 2) UPDATE1 + SCRIPT_MENU;; + 3) UPDATE2 + SCRIPT_MENU;; + 4) DRYRUN2 + SCRIPT_MENU;; + 5) DISTUPGRADE + SCRIPT_MENU;; + 6) ENDISASU + SCRIPT_MENU;; + [Rr]) GO_REBOOT + SCRIPT_MENU;; + [Ss]) SHUTDOWN + SCRIPT_MENU;; + [Qq]) EXIT1 + exit 1;; + *) echo "Thats an invaild option,"; + echo "please select a valid option only."; + sleep 1;; + esac + done +} + +if [ ${action-x} ]; then + case $1 in + 1) DRYRUN1 + SCRIPT_MENU;; + 2) UPDATE1 + SCRIPT_MENU;; + 3) UPDATE2 + SCRIPT_MENU;; + 4) DRYRUN2 + SCRIPT_MENU;; + 5) DISTUPGRADE + SCRIPT_MENU;; + [Rr]) GO_REBOOT + SCRIPT_MENU;; + [Ss]) SHUTDOWN + SCRIPT_MENU;; + *) echo "Thats an invaild option,"; + exit 1;; + esac +else + if [ -e /opt/ubuntu-upscripts/upscripts-install.sh ]; then + rm -f /opt/ubuntu-upscripts/upscripts-install.sh + fi + if [ -e ~/runup.sh ]; then + rm -f ~/runup.sh + ln -s $FOLDER/run.sh /usr/local/bin/runup + echo "" + echo "" + echo -e "${BBlue}NOTICE:${Color_Off} To start this program from now on, simply execute the command ${Green}runup${Color_Off}." + echo -e "${BBlue}NOTICE:${Color_Off} The ~/runup.sh command will no longer work." + echo "" + echo "" + read -n 1 -s -p "Press any key to continue" + fi + +# ruTARGET=$"`file ~/runup.sh | awk '{print $5}'`" +# if [ $ruTARGET == "/opt/ubuntu-upscripts/upscripts.sh" ] || [ $ruTARGET == "\`/opt/ubuntu-upscripts/upscripts.sh'" ]; then +# rm ~/runup.sh +# ln -s $FOLDER/run.sh ~/runup.sh +# echo "Recreated runup.sh link to point to the new loader script..." +# sleep 2 +# fi + + SCRIPT_MENU +fi + +exit 0