diff options
Diffstat (limited to 'install/ishtar-delete-instance')
-rwxr-xr-x | install/ishtar-delete-instance | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/install/ishtar-delete-instance b/install/ishtar-delete-instance new file mode 100755 index 000000000..0cd004de3 --- /dev/null +++ b/install/ishtar-delete-instance @@ -0,0 +1,101 @@ +#!/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 + + echo "" + cecho g $to_delete" have been completly removed" + echo "" +} + +do_delete_instance |