#!/bin/bash R="\e[1;31m" G="\e[1;32m" B="\e[1;34m" W="\e[1;97m" E="\e[00m" DBUSER="root" DBPASS="1234" TAR=$1 NAME=$(echo $TAR | awk -F\. '{print $1}' | awk -F- '{print $1}') echo [ $# -lt 1 ] && echo -e "Tarball argument is missing" && exit [ $# -gt 1 ] && echo -e "Too many arguments" && exit [ -d ${NAME} ] && echo -e "Directory ${R}${NAME}${E} already exist" && exit mysql -uroot -p1234 -e 'show databases' | grep "^${NAME}$" &> /dev/null [ $? -eq 0 ] && echo -e "Database ${R}${NAME}${E} already exist" && exit function log() { if [ $1 == 0 ]; then echo -e " ${G}[ OK ]${E}" return 0 else echo -e " ${R}[FAIL]${E}" exit fi } function verify_integrity() { echo -ne " 🔎 Verify file $1" if [[ "$1" =~ \.bz2$ ]]; then bzip2 -tv $1 return $? fi if [[ "$1" =~ \.gz$ ]]; then gzip -t $1 return $? fi if [[ "$1" =~ \.tar$ ]]; then tar f $1 return $? fi return 1 } function extract_tarball() { echo -ne " 📦 Extract tarball $1" if [[ "$1" =~ \.bz2$ ]]; then tar jxf $1 return $? fi if [[ "$1" =~ \.gz$ ]]; then tar zxf $1 return $? fi if [[ "$1" =~ \.tar$ ]]; then tar xf $1 return $? fi } verify_integrity ${TAR} log $? extract_tarball $TAR log $? echo -ne " 🐬 Create database $NAME" mysql -u${DBUSER} -p${DBPASS} -e "create database $NAME" log $? echo -ne " 🐬 Create db user $NAME" mysql -u${DBUSER} -p${DBPASS} -e "CREATE USER $NAME@localhost IDENTIFIED BY '1234'" mysql -u${DBUSER} -p${DBPASS} -e "GRANT ALL ON $NAME.* TO $NAME@localhost" log $? echo -ne " 🐬 Import $NAME.sql" mysql -u${DBUSER} -p${DBPASS} $NAME < $NAME.sql log $? ls -ld $NAME/ --color=auto ls -l /var/www/site[1234567890] --color=auto