#!/bin/bash # UniFi-Video Controller Updater script. # Version | 2.3 # Author | Glenn Rietveld # Email | glennrietveld8@hotmail.nl # Website | https://GlennR.nl ################################################################################################################################################################################################### # # # Color Codes # # # ################################################################################################################################################################################################### RESET='\033[0m' GRAY='\033[0;37m' WHITE='\033[1;37m' GRAY_R='\033[39m' WHITE_R='\033[39m' RED='\033[1;31m' # Light Red. GREEN='\033[1;32m' # Light Green. BOLD='\e[1m' ################################################################################################################################################################################################### # # # Start Checks # # # ################################################################################################################################################################################################### # Check for root (SUDO). if [ "$EUID" -ne 0 ]; then clear clear echo -e "${RED}#########################################################################${RESET}" echo "" echo -e "${WHITE_R}#${RESET} The script need to be run as root..." echo "" echo "" echo -e "${WHITE_R}#${RESET} For Ubuntu based systems run the command below to login as root" echo -e "${GREEN}#${RESET} sudo -i" echo "" echo -e "${WHITE_R}#${RESET} For Debian based systems run the command below to login as root" echo -e "${GREEN}#${RESET} su" echo "" echo "" exit 1 fi # Try to install lsb-release if [ $(dpkg-query -W -f='${Status}' lsb-release 2>/dev/null | grep -c "ok installed") -eq 0 ]; then apt-get install lsb-release -y || echo "${RED}PLEASE INSTALL PACKAGE: ${WHITE_R}lsb-release${RESET}" | abort fi ################################################################################################################################################################################################### # # # Values # # # ################################################################################################################################################################################################### UNIFI_VIDEO=$(dpkg -l | grep "unifi-video" | awk '{print $3}' | sed 's/-.*//') IP=$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | head -1) OS_NAME=$(lsb_release -cs) OS_RELEASE=$(lsb_release -rs) OS_DESC=$(lsb_release -ds) ARCHITECTURE=$(uname -m) JAVA7=$(dpkg -l | grep -c "openjdk-7-jre-headless\|oracle-java7-installer\|oracle-java7-jdk") JAVA8=$(dpkg -l | grep -c "openjdk-8-jre-headless\|oracle-java8-installer\|oracle-java8-jdk") JAVA7_INSTALLED='' JAVA8_INSTALLED='' UNIFI_VIDEO_VERSION='' abort() { echo -e "\n${RED}###############################################################\n\n An error occurred. Aborting script..\nPlease contact Glenn R. (AmazedMender16) on the Community Forums!\n\n${RESET}" exit 1 } migration_check() { clear echo -e "${GREEN}#########################################################################${RESET}" echo "" echo " Checking Database migration process." echo "" echo "" read -t 120 < <(tail -n 0 -f /usr/lib/unifi-video/logs/server.log | grep --line-buffered 'Service startup sequence completed successfully in main\|Factory Default') && UNIFI_VIDEO_UPDATE=true || TIMED_OUT=true #Database Migration Service.* READY\| if [[ $UNIFI_VIDEO_UPDATE = 'true' ]]; then clear unset UNIFI_VIDEO UNIFI_VIDEO=$(dpkg -l | grep "unifi-video " | awk '{print $3}' | sed 's/-.*//') echo -e "${GREEN}#########################################################################${RESET}" echo "" echo " UniFi-Video Controller DB migration was successful" echo -e " Currently your UniFi-Video Controller is on version ${WHITE_R}${UNIFI_VIDEO}${RESET}" echo "" echo "" echo " Continuing the UniFi-Video Controller update!" echo "" echo "" unset UNIFI_VIDEO_UPDATE unset TIMED_OUT sleep 10 elif [[ $TIMED_OUT = 'true' ]]; then clear echo -e "${RED}#########################################################################${RESET}" echo "" echo " DB migration check timed out!" echo "" echo " Please contact Glenn R. (AmazedMender16) on the Community Forums!" echo "" echo "" exit 1 fi echo "" echo "" } header() { clear echo -e "${GREEN}#########################################################################${RESET}" echo "" } unifi_video_update_start() { clear echo -e "${GREEN}#####################################################${RESET}" echo -e "${GREEN}# #${RESET}" echo -e "${GREEN}# ${RESET}Starting the UniFi-Video Controller update! ${GREEN}#${RESET}" echo -e "${GREEN}# #${RESET}" echo -e "${GREEN}#####################################################${RESET}" echo "" echo "" sleep 2 } unifi_video_update_finish() { unset UNIFI_VIDEO UNIFI_VIDEO=$(dpkg -l | grep "unifi-video " | awk '{print $3}' | sed 's/-.*//') clear echo -e "${GREEN}###############################################################${RESET}" echo "" echo "" echo -e "${GREEN}#${RESET} Your UniFi-Video Controller has been successfully updated to ${WHITE_R}${UNIFI_VIDEO}${RESET}" echo "" echo "" echo -e "${WHITE_R}#${RESET} ${GRAY_R}Author | ${WHITE_R}Glenn R.${RESET}" echo -e "${WHITE_R}#${RESET} ${GRAY_R}Email | ${WHITE_R}glennrietveld8@hotmail.nl${RESET}" echo -e "${WHITE_R}#${RESET} ${GRAY_R}Website | ${WHITE_R}https://GlennR.nl${RESET}" echo "" echo "" rm $0 exit 0 } ################################################################################################################################################################################################### # # # Checks # # # ################################################################################################################################################################################################### # Check if UniFi is already installed. if [ $(dpkg-query -W -f='${Status}' unifi-video 2>/dev/null | grep -c "ok installed") -eq 0 ]; then clear echo -e "${RED}#####################################################${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}# ${RESET}UniFi-Video isn't installed! ${RED}#${RESET}" echo -e "${RED}# ${RESET}You can use GlennR's Installation Scripts ${RED}#${RESET}" echo -e "${RED}# ${RESET}to install UniFi-Video on your system ${RED}#${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}#####################################################${RESET}" exit 0 fi if [ -f /etc/apt/sources.list.d/unifi-video.list ]; then rm /etc/apt/sources.list.d/unifi-video.list echo -e "${RED}###############################################################${RESET}" echo "" echo " UniFi-Video source files were detected on your system!" echo " The script will remove the source files, so your upgrade will be successful." echo "" echo "" sleep 8 clear fi if [ -f unifi-video.*.deb* ]; then rm unifi-video.*.deb* echo -e "${RED}###############################################################${RESET}" echo "" echo " UniFi-Video Installation file was detected on your system!" echo " The script will remove the installation file, so your upgrade will be successful." echo "" echo "" sleep 8 fi if (whiptail --title "UniFi-Video Easy Update" --yesno "Did you download a backup of your controller?" 8 78) then clear echo -e "${GREEN}###################################################${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} You downloaded a backup! Awesome! ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} Starting the Easy Update Script ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}###################################################${RESET}" sleep 2 else clear echo -e "${RED}###################################################${RESET}" echo -e "${RED}#${RESET} ${RED}#${RESET}" echo -e "${RED}#${RESET} You did not download a backup! ${RED}#${RESET}" echo -e "${RED}#${RESET} Please download a backup and rerun the script ${RED}#${RESET}" echo -e "${RED}#${RESET} ${RED}#${RESET}" echo -e "${RED}###################################################${RESET}" exit 0 fi if [[ $JAVA8 -eq 0 ]]; then clear echo -e "${RED}################################################${RESET}" echo -e "${RED}#${RESET} ${RED}#${RESET}" echo -e "${RED}#${RESET} JAVA 8 is not installed! ${RED}#${RESET}" echo -e "${RED}#${RESET} Installing OpenJDK 8! ${RED}#${RESET}" echo -e "${RED}#${RESET} ${RED}#${RESET}" echo -e "${RED}################################################${RESET}" echo "" echo "" sleep 2 if [[ $OS_NAME == "trusty" ]]; then clear echo -e "${GREEN}################################################${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} Selected OS ${WHITE_R}Trusty ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}################################################${RESET}" sleep 2 if [[ $(cat /etc/environment | grep "JAVA_HOME") ]] then sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/environment fi if [ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 0 ] then apt-get install openjdk-8-jre-headless --force-yes || apt-get install openjdk-8-jre-headless -y if [[ $? > 0 ]] then if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main") -eq 0 ]]; then echo deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main >>/etc/apt/sources.list.d/glennr-install-script.list || abort apt-get update || abort apt-get install openjdk-8-jre-headless --force-yes || apt-get install openjdk-8-jre-headless -y || abort fi fi fi if [[ $? > 0 ]] then clear echo -e "${RED}########################################################${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}# ${RESET}Failed to install OpenJDK 8! ${RED}#${RESET}" echo -e "${RED}# ${RESET}Trying Orcale JAVA 8! ${RED}#${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}########################################################${RESET}" sleep 2 apt-get purge openjdk-8-jre-headless --force-yes || apt-get purge openjdk-8-jre-headless -y apt-add-repository ppa:webupd8team/java --force-yes || apt-add-repository ppa:webupd8team/java -y || abort apt-get update || abort echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections || abort apt-get install oracle-java8-installer --force-yes; apt-get install oracle-java8-set-default --force-yes || apt-get install oracle-java8-installer -y; apt-get install oracle-java8-set-default -y fi if [[ $(dpkg-query -W -f='${Status}' oracle-java8-installer 2>/dev/null | grep -c "ok installed") -eq 1 ]] || [[ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 1 ]] then if [ -f /etc/default/unifi ]; then if [[ $(cat /etc/default/unifi | grep "JAVA_HOME") ]]; then sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/default/unifi fi echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/default/unifi else echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/environment source /etc/environment fi fi elif [[ $OS_NAME == "xenial" ]] || [[ $OS_DESC == "Linux Mint 18"* ]]; then echo -e "${GREEN}################################################${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} Selected OS ${WHITE_R}Xenial ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}################################################${RESET}" sleep 2 if [[ $(cat /etc/environment | grep "JAVA_HOME") ]] then sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/environment fi if [ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 0 ] then apt-get install openjdk-8-jre-headless -y if [[ $? > 0 ]] then if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu xenial-security main universe") -eq 0 ]]; then echo deb http://security.ubuntu.com/ubuntu xenial-security main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort apt-get update || abort apt-get install openjdk-8-jre-headless -y || abort fi fi fi if [[ $? > 0 ]] then clear echo -e "${RED}########################################################${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}# ${RESET}Failed to install OpenJDK 8! ${RED}#${RESET}" echo -e "${RED}# ${RESET}Trying Orcale JAVA 8! ${RED}#${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}########################################################${RESET}" sleep 2 apt-get purge openjdk-8-jre-headless -y add-apt-repository ppa:webupd8team/java -y || abort apt-get update || abort echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections || abort apt-get install oracle-java8-installer -y; apt-get install oracle-java8-set-default -y fi if [[ $(dpkg-query -W -f='${Status}' oracle-java8-installer 2>/dev/null | grep -c "ok installed") -eq 1 ]] || [[ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 1 ]] then if [ -f /etc/default/unifi ]; then if [[ $(cat /etc/default/unifi | grep "JAVA_HOME") ]]; then sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/default/unifi fi echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/default/unifi else echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/environment source /etc/environment fi fi elif [[ $OS_NAME == "bionic" ]] || [[ $OS_DESC == "Linux Mint 19"* ]]; then echo -e "${GREEN}################################################${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} Selected OS ${WHITE_R}Bionic ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}################################################${RESET}" sleep 2 if [[ $(cat /etc/environment | grep "JAVA_HOME") ]] then sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/environment fi if [ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 0 ] then apt-get install openjdk-8-jre-headless -y if [[ $? > 0 ]] then if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu bionic-security main universe") -eq 0 ]]; then echo deb http://security.ubuntu.com/ubuntu bionic-security main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort apt-get update || abort apt-get install openjdk-8-jre-headless -y || abort fi fi fi if [[ $? > 0 ]] then clear echo -e "${RED}########################################################${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}# ${RESET}Failed to install OpenJDK 8! ${RED}#${RESET}" echo -e "${RED}# ${RESET}Trying Orcale JAVA 8! ${RED}#${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}########################################################${RESET}" sleep 2 apt-get purge openjdk-8-jre-headless -y add-apt-repository ppa:webupd8team/java -y || abort apt-get update || abort echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections || abort apt-get install oracle-java8-installer -y; apt-get install oracle-java8-set-default -y fi if [[ $(dpkg-query -W -f='${Status}' oracle-java8-installer 2>/dev/null | grep -c "ok installed") -eq 1 ]] || [[ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 1 ]] then if [ -f /etc/default/unifi ]; then if [[ $(cat /etc/default/unifi | grep "JAVA_HOME") ]]; then sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/default/unifi fi echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/default/unifi else echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/environment source /etc/environment fi fi elif [[ $OS_NAME == "cosmic" ]]; then echo -e "${GREEN}################################################${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} Selected OS ${WHITE_R}Cosmic ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}################################################${RESET}" sleep 2 if [[ $(cat /etc/environment | grep "JAVA_HOME") ]] then sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/environment fi if [ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 0 ] then apt-get install openjdk-8-jre-headless -y if [[ $? > 0 ]] then if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu cosmic-security main universe") -eq 0 ]]; then echo deb http://security.ubuntu.com/ubuntu cosmic-security main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort apt-get update || abort apt-get install openjdk-8-jre-headless -y || abort fi fi fi if [[ $? > 0 ]] then clear echo -e "${RED}########################################################${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}# ${RESET}Failed to install OpenJDK 8! ${RED}#${RESET}" echo -e "${RED}# ${RESET}Trying Orcale JAVA 8! ${RED}#${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}########################################################${RESET}" sleep 2 apt-get purge openjdk-8-jre-headless -y add-apt-repository ppa:webupd8team/java -y || abort apt-get update || abort echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections || abort apt-get install oracle-java8-installer -y; apt-get install oracle-java8-set-default -y fi if [[ $(dpkg-query -W -f='${Status}' oracle-java8-installer 2>/dev/null | grep -c "ok installed") -eq 1 ]] || [[ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 1 ]] then if [ -f /etc/default/unifi ]; then if [[ $(cat /etc/default/unifi | grep "JAVA_HOME") ]]; then sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/default/unifi fi echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/default/unifi else echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/environment source /etc/environment fi fi elif [[ $OS_NAME == "jessie" ]]; then echo -e "${GREEN}################################################${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} Selected OS ${WHITE_R}Jessie ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}################################################${RESET}" sleep 2 if [[ $(cat /etc/environment | grep "JAVA_HOME") ]] then sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/environment fi if [ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 0 ] then apt-get install -t jessie-backports openjdk-8-jre-headless ca-certificates-java -y if [[ $? > 0 ]] then if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian jessie-backports main") -eq 0 ]]; then echo deb http://ftp.nl.debian.org/debian jessie-backports main >>/etc/apt/sources.list.d/glennr-install-script.list || abort apt-get update || abort apt-get install -t jessie-backports openjdk-8-jre-headless ca-certificates-java -y || abort fi fi fi if [[ $? > 0 ]] then clear echo -e "${RED}########################################################${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}# ${RESET}Failed to install OpenJDK 8! ${RED}#${RESET}" echo -e "${RED}# ${RESET}Trying Orcale JAVA 8! ${RED}#${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}########################################################${RESET}" sleep 2 apt-get purge openjdk-8-jre-headless -y add-apt-repository "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" || abort apt-get update || abort echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections || abort apt-get install oracle-java8-installer -y; apt-get install oracle-java8-set-default -y fi if [[ $(dpkg-query -W -f='${Status}' oracle-java8-installer 2>/dev/null | grep -c "ok installed") -eq 1 ]] then echo "JAVA_HOME="/usr/lib/jvm/java-8-oracle"" >> /etc/environment source /etc/environment fi if [[ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 1 ]] then if [ $ARCHITECTURE == 'x86_64' ] then echo "JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java"" >> /etc/environment source /etc/environment elif [ $ARCHITECTURE == 'aarch64' ] then echo "JAVA_HOME="/usr/lib/jvm/java-8-openjdk-arm64/jre/bin/java"" >> /etc/environment source /etc/environment else echo "JAVA_HOME="/usr/lib/jvm/java-8-openjdk-i386/jre/bin/java"" >> /etc/environment source /etc/environment fi fi elif [[ $OS_NAME == "stretch" ]] || [[ $OS_DESC == "MX 18"* ]]; then echo -e "${GREEN}################################################${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} Selected OS ${WHITE_R}Stretch ${GREEN}#${RESET}" echo -e "${GREEN}#${RESET} ${GREEN}#${RESET}" echo -e "${GREEN}################################################${RESET}" sleep 2 if [[ $(cat /etc/environment | grep "JAVA_HOME") ]] then sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/environment fi if [ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 0 ] then apt-get install openjdk-8-jre-headless ca-certificates-java -y if [[ $? > 0 ]] then if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort apt-get update || abort apt-get install openjdk-8-jre-headless ca-certificates-java -y || abort fi fi fi if [[ $? > 0 ]] then clear echo -e "${RED}########################################################${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}# ${RESET}Failed to install OpenJDK 8! ${RED}#${RESET}" echo -e "${RED}# ${RESET}Trying Orcale JAVA 8! ${RED}#${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}########################################################${RESET}" sleep 2 apt-get purge openjdk-8-jre-headless -y add-apt-repository ppa:webupd8team/java -y; apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C2518248EEA14886 || abort apt-get update || abort echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections || abort apt-get install oracle-java8-installer -y; apt-get install oracle-java8-set-default -y fi if [[ $(dpkg-query -W -f='${Status}' oracle-java8-installer 2>/dev/null | grep -c "ok installed") -eq 1 ]] || [[ $(dpkg-query -W -f='${Status}' openjdk-8-jre-headless 2>/dev/null | grep -c "ok installed") -eq 1 ]] then if [ -f /etc/default/unifi ]; then if [[ $(cat /etc/default/unifi | grep "JAVA_HOME") ]]; then sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/default/unifi fi echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/default/unifi else echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/environment source /etc/environment fi fi else echo "" echo -e "${RED}###############################################################${RESET}" echo "" echo "" echo -e " ${RED}Please manually install JAVA 8 on your system!${RESET}" echo "" echo -e " ${GRAY_R}OS Details:${RESET}" echo "" echo -e " ${RED}${OS_DESC}${RESET}" exit 0 fi fi # JAVA 7 Check JAVA7=$(dpkg -l | grep -c "openjdk-7-jre-headless\|oracle-java7-installer\|oracle-java7-jdk") JAVA8=$(dpkg -l | grep -c "openjdk-8-jre-headless\|oracle-java8-installer\|oracle-java8-jdk") if [[ $JAVA8 -eq 1 ]]; then JAVA8_INSTALLED=true fi if [[ $JAVA7 -eq 1 ]]; then JAVA7_INSTALLED=true fi if [[ ( $JAVA8_INSTALLED = 'true' && $JAVA7_INSTALLED = 'true' ) ]]; then echo -e "${RED}################################################################################################################${RESET}" echo "" echo " JAVA 8 was installed on your system!" echo " Do you want to uninstall JAVA 7?" echo "" echo " ! This will also uninstall any other package depending on JAVA 7 !" echo "" echo "" read -p $' \033[39m#\033[0m Do you want to proceed with uninstalling JAVA 7? (Y/n) ' yes_no case "$yes_no" in [Yy]*|"") clear echo -e "${GREEN}#####################################################${RESET}" echo -e "${GREEN}# #${RESET}" echo -e "${GREEN}# ${RESET}Uninstalling JAVA 7! ${GREEN}#${RESET}" echo -e "${GREEN}# #${RESET}" echo -e "${GREEN}#####################################################${RESET}" apt-get purge openjdk-7-* -y || apt-get purge oracle-java7-* -y;; [Nn]*) clear echo -e "${RED}#####################################################${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}# ${RESET}Cancelling the script! ${RED}#${RESET}" echo -e "${RED}# #${RESET}" echo -e "${RED}#####################################################${RESET}" exit 1;; esac fi ########################################################################################################################################################################## # # # 3.8.x # # # ########################################################################################################################################################################## if [[ $UNIFI_VIDEO == "3.8."* ]]; then clear echo -e "${GREEN}#########################################################################${RESET}" echo "" echo " To what UniFi-Video Controller version would you like to update?" echo -e " Currently your UniFi-Video Controller is on version ${WHITE_R}${UNIFI_VIDEO}${RESET}" echo "" echo "" if [[ $UNIFI_VIDEO = "3.8.5" ]]; then UNIFI_VIDEO_VERSION='3.8.5' echo -e " [ ${WHITE_R}1${RESET} ] | 3.9.12" echo -e " [ ${WHITE_R}2${RESET} ] | Cancel" else echo -e " [ ${WHITE_R}1${RESET} ] | 3.8.5" echo -e " [ ${WHITE_R}2${RESET} ] | 3.9.12" echo -e " [ ${WHITE_R}3${RESET} ] | Cancel" fi echo "" echo "" if [[ $UNIFI_VIDEO_VERSION = "3.8.5" ]]; then read UPGRADE_VERSION case "$UPGRADE_VERSION" in 1|3912|3.9.12) unifi_video_update_start header if [[ $OS_NAME == "jessie" || $OS_NAME == "stretch" ]] then wget https://dl.ui.com/firmwares/ufv/v3.9.12/unifi-video.Debian7_amd64.v3.9.12.deb || abort DEBIAN_FRONTEND=noninteractive dpkg -i unifi-video.Debian7_amd64.v3.9.12.deb || abort rm unifi-video.Debian7_amd64.v3.9.12.deb || abort elif [[ $OS_NAME == "xenial" || $OS_NAME == "bionic" || $OS_NAME == "cosmic" ]] then wget https://dl.ui.com/firmwares/ufv/v3.9.12/unifi-video.Ubuntu16.04_amd64.v3.9.12.deb || abort DEBIAN_FRONTEND=noninteractive dpkg -i unifi-video.Ubuntu16.04_amd64.v3.9.12.deb || abort rm unifi-video.Ubuntu16.04_amd64.v3.9.12.deb || abort fi unifi_video_update_finish;; 2|*) echo "Cancelling the script!" exit 1;; esac else read UPGRADE_VERSION case "$UPGRADE_VERSION" in 1|385|3.8.5) unifi_video_update_start header if [[ $OS_NAME == "jessie" || $OS_NAME == "stretch" ]] then wget https://dl.ui.com/firmwares/ufv/v3.8.5/unifi-video.Debian7_amd64.v3.8.5.deb || abort DEBIAN_FRONTEND=noninteractive dpkg -i unifi-video.Debian7_amd64.v3.8.5.deb || abort rm unifi-video.Debian7_amd64.v3.8.5.deb || abort elif [[ $OS_NAME == "xenial" || $OS_NAME == "bionic" || $OS_NAME == "cosmic" ]] then wget https://dl.ui.com/firmwares/ufv/v3.8.5/unifi-video.Ubuntu16.04_amd64.v3.8.5.deb || abort DEBIAN_FRONTEND=noninteractive dpkg -i unifi-video.Ubuntu16.04_amd64.v3.8.5.deb || abort rm unifi-video.Ubuntu16.04_amd64.v3.8.5.deb || abort fi unifi_video_update_finish;; 2|3912|3.9.12) unifi_video_update_start header if [[ $OS_NAME == "jessie" || $OS_NAME == "stretch" ]] then wget https://dl.ui.com/firmwares/ufv/v3.9.12/unifi-video.Debian7_amd64.v3.9.12.deb || abort DEBIAN_FRONTEND=noninteractive dpkg -i unifi-video.Debian7_amd64.v3.9.12.deb || abort rm unifi-video.Debian7_amd64.v3.9.12.deb || abort elif [[ $OS_NAME == "xenial" || $OS_NAME == "bionic" || $OS_NAME == "cosmic" ]] then wget https://dl.ui.com/firmwares/ufv/v3.9.12/unifi-video.Ubuntu16.04_amd64.v3.9.12.deb || abort DEBIAN_FRONTEND=noninteractive dpkg -i unifi-video.Ubuntu16.04_amd64.v3.9.12.deb || abort rm unifi-video.Ubuntu16.04_amd64.v3.9.12.deb || abort fi unifi_video_update_finish;; 3|*) echo "Cancelling the script!" exit 1;; esac fi fi ########################################################################################################################################################################## # # # 3.9.x # # # ########################################################################################################################################################################## if [[ $UNIFI_VIDEO == "3.9."* ]]; then clear echo -e "${GREEN}#########################################################################${RESET}" echo "" echo " To what UniFi-Video Controller version would you like to update?" echo -e " Currently your UniFi-Video Controller is on version ${WHITE_R}${UNIFI_VIDEO}${RESET}" echo "" echo "" if [[ $UNIFI_VIDEO = "3.9.12" ]]; then UNIFI_VIDEO_VERSION='3.9.12' echo " This script does not support upgrading to 3.10.x" echo " Please read this thread by UBNT-Amir https://community.ubnt.com/t5/UniFi-Video/UniFi-Video-3-10-0-and-MongoDB/m-p/2656593" echo "" echo -e " [ ${WHITE_R}1${RESET} ] | Cancel" else echo -e " [ ${WHITE_R}1${RESET} ] | 3.9.12" echo -e " [ ${WHITE_R}2${RESET} ] | Cancel" fi echo "" echo "" if [[ $UNIFI_VIDEO_VERSION = "3.9.12" ]]; then read UPGRADE_VERSION case "$UPGRADE_VERSION" in [Nn]*) echo "Cancelling the script!" exit 1;; esac else read UPGRADE_VERSION case "$UPGRADE_VERSION" in 1|3912|3.9.12) unifi_video_update_start header if [[ $OS_NAME == "jessie" || $OS_NAME == "stretch" ]] then wget https://dl.ui.com/firmwares/ufv/v3.9.12/unifi-video.Debian7_amd64.v3.9.12.deb || abort DEBIAN_FRONTEND=noninteractive dpkg -i unifi-video.Debian7_amd64.v3.9.12.deb || abort rm unifi-video.Debian7_amd64.v3.9.12.deb || abort elif [[ $OS_NAME == "xenial" || $OS_NAME == "bionic" || $OS_NAME == "cosmic" ]] then wget https://dl.ui.com/firmwares/ufv/v3.9.12/unifi-video.Ubuntu16.04_amd64.v3.9.12.deb || abort DEBIAN_FRONTEND=noninteractive dpkg -i unifi-video.Ubuntu16.04_amd64.v3.9.12.deb || abort rm unifi-video.Ubuntu16.04_amd64.v3.9.12.deb || abort fi unifi_video_update_finish;; 2|*) echo "Cancelling the script!" exit 1;; esac fi fi ########################################################################################################################################################################## # # # 3.10.x # # # ########################################################################################################################################################################## if [[ $UNIFI_VIDEO == "3.10."* ]]; then if [ $UNIFI_VIDEO = "3.10.1" then clear echo -e "${GREEN}#####################################################${RESET}" echo -e "${GREEN}# #${RESET}" echo -e "${GREEN}# ${RESET}Your UniFi-Video Controller is already on ${GREEN}#${RESET}" echo -e "${GREEN}# ${RESET}the latest stable release! ${GREEN}#${RESET}" echo -e "${GREEN}# #${RESET}" echo -e "${GREEN}#####################################################${RESET}" rm $0 exit 1 fi clear echo -e "${GREEN}#########################################################################${RESET}" echo "" echo " To what UniFi-Video Controller version would you like to update?" echo -e " Currently your UniFi-Video Controller is on version ${WHITE_R}${UNIFI_VIDEO}${RESET}" echo "" echo "" echo -e " [ ${WHITE_R}1${RESET} ] | 3.10.1" echo -e " [ ${WHITE_R}2${RESET} ] | Cancel" echo "" echo "" read UPGRADE_VERSION case "$UPGRADE_VERSION" in 1|3101|3.10.1) unifi_video_update_start header if [[ $OS_NAME == "jessie" || $OS_NAME == "stretch" ]] then wget https://dl.ui.com/firmwares/unifi-video/v3.10.1/unifi-video.Debian7_amd64.v3.10.1.deb || abort /usr/lib/unifi-video/bin/ubnt.updater unifi-video.Debian7_amd64.v3.10.1.deb || abort rm unifi-video.Debian7_amd64.v3.10.1.deb || abort elif [[ $OS_NAME == "xenial" ]] then wget https://dl.ui.com/firmwares/unifi-video/v3.10.1/unifi-video.Ubuntu16.04_amd64.v3.10.1.deb || abort /usr/lib/unifi-video/bin/ubnt.updater unifi-video.Ubuntu16.04_amd64.v3.10.1.deb || abort rm unifi-video.Ubuntu16.04_amd64.v3.10.1.deb || abort elif [[ $OS_NAME == "bionic" || $OS_NAME == "cosmic" ]] then wget https://dl.ubnt.com/firmwares/unifi-video/v3.10.1/unifi-video.Ubuntu18.04_amd64.v3.10.1.deb || abort /usr/lib/unifi-video/bin/ubnt.updater unifi-video.Ubuntu18.04_amd64.v3.10.1.deb || abort rm unifi-video.Ubuntu18.04_amd64.v3.10.1.deb || abort fi unifi_video_update_finish;; 2|*) echo "Cancelling the script!" exit 1;; esac fi