#!/bin/bash -e # -e Causes bash script to exit if any of the steps # return with a non-zero return value. if [[ $EUID -ne 0 ]]; then echo "Please run as root user." exit 1 fi getStorDirFromDatabase() { # here-doc to execute this block as postgres user result=`su postgres <<'EOF' set +e echo $(psql -d airtime -tAc "SELECT directory FROM cc_music_dirs WHERE type='stor'") set -e # don't indent this! EOF` echo $result } dropAirtimeDatabase() { # here-doc to execute this block as postgres user su postgres <<'EOF' set +e # DROP DATABASE cannot be executed from a function or multi-command string psql -d postgres -tAc "DROP DATABASE IF EXISTS airtime" psql -d postgres -tAc "DROP USER IF EXISTS airtime" set -e # don't indent this! EOF } SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" AIRTIMEROOT=${SCRIPT_DIR} STOR_DIR=$(getStorDirFromDatabase) FILES=( "${STOR_DIR}" "/etc/airtime" "/var/log/airtime" "/usr/lib/airtime" "/usr/share/airtime" "/etc/init/airtime*" "/usr/bin/airtime*" "/etc/apache2/sites-available/airtime*" "pip airtime-playout" "pip airtime-media-monitor" ) echo -e "The following files, directories, and services will be removed:\n" for i in ${FILES[*]}; do echo $i done echo -e "\nThis will *permanently* remove Airtime and all related files from your computer. \ Any files in Airtime directories and subdirectories will be deleted. Are you sure you want to proceed? (Y/n): \c" read IN if [[ ! ( "$IN" = "y" || "$IN" = "Y" ) ]]; then exit 0 fi echo -e "\nAre you sure you want to remove your music storage directory ${STOR_DIR} and all of its subdirectories? (Y/n): \c" read IN if [[ "$IN" = "y" || "$IN" = "Y" ]]; then rm -rf ${STOR_DIR} fi echo "Uninstalling Airtime..." rm -rf /etc/airtime rm -rf /var/log/airtime/ rm -rf /usr/lib/airtime/ rm -rf /usr/share/airtime rm -f /etc/init/airtime* rm -f /usr/bin/airtime* rm -f /etc/apache2/sites-enabled/airtime* rm -f /etc/apache2/sites-available/airtime* dropAirtimeDatabase pip uninstall -y airtime-playout airtime-media-monitor echo "...Done"