#!/bin/bash set -e cecho() { local code="\033[" case "$1" in black | bk) color="${code}0;30m";; red | r) color="${code}1;31m";; green | g) color="${code}1;32m";; yellow | y) color="${code}1;33m";; blue | b) color="${code}1;34m";; purple | p) color="${code}1;35m";; cyan | c) color="${code}1;36m";; gray | gr) color="${code}0;37m";; *) local text="$1" esac [ -z "$text" ] && local text="$color$2${code}0m" echo -e "$text" } do_delete_instance() { NGINX_AVAILABLE_PATH='/etc/nginx/sites-available' NGINX_ENABLE_PATH='/etc/nginx/sites-enabled' UWSGI_AVAILABLE_PATH='/etc/uwsgi/apps-available' UWSGI_ENABLE_PATH='/etc/uwsgi/apps-enabled' if [ ! -z '$CONFIG_PATH' ]; then CONFIG_PATH="/etc/ishtar/" fi if [ ! -f $CONFIG_PATH/config ]; then echo ""; cecho r ""$CONFIG_PATH" is not a valid config file." echo "Have you properly install Ishtar sources?" echo "Run ishtar-install before this script."; echo ""; exit 1; fi source $CONFIG_PATH/config INSTANCES_FILE=$CONFIG_PATH/instances if [ ! -f $INSTANCES_FILE ]; then echo ""; cecho r "No instance installed. Exiting." echo ""; exit 1; fi echo "" cecho g "*******************************************************************************" cecho g "++++++ Ishtar instance deletion script ++++++" cecho g "*******************************************************************************" echo "" cecho y "Available instances:" echo "" cat $INSTANCES_FILE to_delete='' echo "" while [ "$to_delete" == '' ] do read -p "* Which one would you like to delete? " choice GRP=`cat $INSTANCES_FILE | grep "^$choice$"` if [ "$GRP" != '' ]; then to_delete=$choice fi done echo "" cecho r "Are you really sure to delete configuration, database and media attached to the " cecho r "instance "$to_delete"?" echo "" read -p "* Type DELETE if you are sure: " choice if [ "$choice" != "DELETE" ]; then exit 1 fi sed '/'$to_delete'/d' $INSTANCES_FILE > /tmp/new_instances mv /tmp/new_instances $INSTANCES_FILE INSTANCE=$to_delete rm -rf $ISHTAR_PATH/$INSTANCE rm -f "$NGINX_AVAILABLE_PATH/ishtar-$INSTANCE.conf" rm -f "$NGINX_ENABLE_PATH/ishtar-$INSTANCE.conf" rm -f "$UWSGI_AVAILABLE_PATH/ishtar-$INSTANCE.ini" rm -f "$UWSGI_ENABLE_PATH/ishtar-$INSTANCE.ini" DB_NAME="ishtar-$INSTANCE" export DB_NAME su postgres <<'EOF' dropdb "$DB_NAME" dropuser "$DB_NAME" EOF if [ $USE_CELERY = 'yes' ]; then systemctl disable celery-$INSTANCE systemctl stop celery-$INSTANCE /usr/sbin/rabbitmqctl delete_vhost /ishtar$INSTANCE /usr/sbin/rabbitmqctl delete_user ishtar$INSTANCE rm "/etc/default/celeryd-"$INSTANCE rm "/etc/systemd/system/celery-"$INSTANCE".service" systemctl daemon-reload fi echo "" cecho g $to_delete" have been completly removed" echo "" } do_delete_instance