script update

master
Cold-Egg 5 years ago
parent f5f591b473
commit cc6296dbc5

@ -1,24 +0,0 @@
#!/usr/bin/env bash
# create random password
if [ -z "$1" ]
then
echo "Missing arguments, exit"
exit 0
fi
PASSWDDBnoQoutes="$(openssl rand -base64 12)"
PASSWDDB="'$PASSWDDBnoQoutes'"
SITE=$1
MAINDB="${SITE}_db"
echo Database: $MAINDB
echo Username: $MAINDB
echo Password: $PASSWDDBnoQoutes
any="'%'"
docker-compose exec mysql su -c 'apk add mysql-client'
docker-compose exec mysql su -c 'mysql -uroot -ppassword -e "CREATE DATABASE '${MAINDB}' /*\!40100 DEFAULT CHARACTER SET utf8 */;"'
docker-compose exec mysql su -c 'mysql -uroot -ppassword -e "CREATE USER '${MAINDB}'@${any} IDENTIFIED BY '${PASSWDDB}';"'
docker-compose exec mysql su -c 'mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON '${MAINDB}'.* TO '${MAINDB}'@${any};"'
docker-compose exec mysql su -c "mysql -uroot -ppassword -e 'FLUSH PRIVILEGES;'"

@ -0,0 +1,115 @@
#!/usr/bin/env bash
source .env
echo "MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}"
DOMAIN=''
SQL_DB=''
SQL_USER=''
SQL_PASS=''
ANY='%'
help_message(){
echo 'Command [-domain xxx]'
echo 'Command [-user xxx] [-password xxx] [-database xxx]'
echo 'Example 1: database.sh -domain example.com'
echo 'Example 2: domain.sh -user USERNAME -password PASSWORD -database DATABASENAME'
echo 'Script will auto assign database & username by the domain and random password for example 1'
}
check_input(){
if [ -z "${1}" ]; then
help_message
exit 1
fi
}
specify_name(){
check_input ${SQL_USER}
check_input ${SQL_PASS}
check_input ${SQL_DB}
}
auto_name(){
SQL_DB=${TRANSNAME}
SQL_USER=${TRANSNAME}
SQL_PASS=${RANDOM_PASS}
}
gen_pass(){
RANDOM_PASS="$(openssl rand -base64 12)"
}
trans_name(){
TRANSNAME=$(echo ${1} | tr -d '.&&-')
}
display_credential(){
echo Database: ${SQL_DB}
echo Username: ${SQL_USER}
echo Password: ${SQL_PASS}
exit 0
}
add_sql_client(){
docker-compose exec mysql su -c 'apk add mysql-client'
}
check_db_access(){
docker-compose exec mysql su -c "mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e 'status'"
if [ ${?} != 0 ]; then
echo "DB access failed, please check!"
exit 1
fi
}
db_setup(){
docker-compose exec mysql su -c "mysql -uroot -p${MYSQL_ROOT_PASSWORD} \
-e 'CREATE DATABASE ${SQL_DB};' \
-e 'GRANT ALL PRIVILEGES ON ${SQL_DB}.* TO ${SQL_USER}@${ANY} IDENTIFIED BY ${SQL_PASS};' \
-e 'FLUSH PRIVILEGES;'"
}
auto_setup_main(){
check_input ${DOMAIN}
gen_pass
trans_name ${DOMAIN}
auto_name
db_setup
display_credential
}
specify_setup_main(){
specify_name
db_setup
display_credential
}
check_input ${1}
while [ ! -z "${1}" ]; do
case ${1} in
-[hH] | -help | --help)
help_message
;;
-d | -D | -domain) shift
DOMAIN="${1}"
;;
-u | -U | -user) shift
SQL_USER="${1}"
;;
-p | -P | -password) shift
SQL_PASS="${1}"
;;
-db | -DB | -database) shift
SQL_PDB="${1}"
;;
*)
help_message
;;
esac
shift
done
if [ ${DOMAIN} = '' ]; then
specify_setup_main
else
auto_setup_main
fi

@ -3,8 +3,8 @@ CONT_NAME='litespeed'
help_message(){ help_message(){
echo 'Command [-add|-del] [domain_name]' echo 'Command [-add|-del] [domain_name]'
echo 'Example: domain.sh -add example.com' echo 'Example 1: domain.sh -add example.com'
echo 'Example: domain.sh -del example.com' echo 'Example 2: domain.sh -del example.com'
} }
check_input(){ check_input(){

Loading…
Cancel
Save