This commit is contained in:
Ste Vaidis 2023-07-24 15:01:21 +03:00
parent 4e56b2f6c5
commit 0cadd4e214
7 changed files with 568 additions and 0 deletions

102
toolbox/clone Executable file
View File

@ -0,0 +1,102 @@
#$/bin/bash
#
# needs
#
# 1. database dump
# 2. settings.php
#
# 1. clone drupal files from git
# 2. install drupal
# 3. create database
# 4. create database user
#
RED="\e[0;31m"
GRN="\e[0;32m"
BLU="\e[0;34m"
WHT="\e[0;97m"
BOLDRED="\e[1;31m"
BOLDGRN="\e[1;32m"
BOLDBLU="\e[1;34m"
BOLDWHT="\e[1;97m"
END="\e[00m"
BITBUCKET_USER='stevaidis'
BITBUCKET_PASS='ATBBTztz2mBYTYyy88WhGZUGNQmS712ED6FC'
REPO="bitbucket.org/dotsoft-sa/$1.git"
NAME=$2
DBUSER="root"
DBPASS="1234"
# ./clone.sh https://stevaidis@bitbucket.org/dotsoft-sa/goint-backend.git
function ok() {
echo -e "${BOLDGRN}[ OK ]${END}"
}
function fail() {
echo -e "${BOLDRED}[FAIL]${EMD}"
exit
}
echo
if [ ! -f $NAME.sql ]; then
echo -e "\n 😿 Database dump file ${BOLDBLU}$NAME.sql${END} does not exist here \n"
exit
fi
if [ ! -f $NAME.settings.php ]; then
echo -e "\n 😿 Settings file ${BOLDBLU}$NAME.settings.php${END} does not exist here \n"
exit
fi
git ls-remote --quiet https://${BITBUCKET_USER}:${BITBUCKET_PASS}@${REPO} > /dev/null
if [ $? -ne 0 ]; then
echo -e "\n 😿 Cant access this repository in bitbucket \n"
exit
fi
echo -ne " 🍄 Clone repo to dir: $NAME ..."
git clone --quiet https://${BITBUCKET_USER}:${BITBUCKET_PASS}@${REPO} ${NAME} > /dev/null
if [ $? = 0 ]; then ok; else fail; fi
echo "`date +'%d/%m/%Y %H:%M:%S'` Fresh clone" > $NAME.copy.log
cd $NAME
cp ../$NAME.settings.php sites/default/settings.php
echo -ne " 🍒 Switch to new branch $NAME ..."
git checkout --quiet -b $2 > /dev/null
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Create database user $NAME with password '${DBPASS}' ..."
mysql -u${DBUSER} -p${DBPASS} -e "CREATE USER $NAME@localhost IDENTIFIED BY \"${DBPASS}\""
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Create database $NAME ..."
mysql -u${DBUSER} -p${DBPASS} -e "CREATE DATABASE $NAME"
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Grand user ${NAME} permissions database ${NAME} ..."
mysql -u${DBUSER} -p${DBPASS} -e "GRANT ALL ON $NAME.* TO $NAME@localhost"
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Flush privilages ..."
mysql -u${DBUSER} -p${DBPASS} -e "FLUSH PRIVILEGES"
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Import $NAME.sql ..."
mysql -u${DBUSER} -p${DBPASS} $NAME < ../$NAME.sql
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🧰 Composer install ... "
COMPOSER_ALLOW_SUPERUSER=1 composer install > ../$NAME.composer.log 2>&1
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐷 Change files owner to user ${BOLDWHT}apache${END}"
chown apache:apache * -R
if [ $? = 0 ]; then ok; else fail; fi
echo -e " 🚀 Ready to go!"
echo

89
toolbox/copy Executable file
View File

@ -0,0 +1,89 @@
#!/bin/bash
RED="\e[0;31m"
GRN="\e[0;32m"
BLU="\e[0;34m"
WHT="\e[0;97m"
BOLDRED="\e[1;31m"
BOLDGRN="\e[1;32m"
BOLDBLU="\e[1;34m"
BOLDWHT="\e[1;97m"
END="\e[00m"
DBUSER="root"
DBPASS="1234"
SRC=$1
DST=$2
function ok() {
echo -e "${BOLDGRN} [ OK ]${END}"
}
function fail() {
echo -e "${BOLDRED} [FAIL]${END}"
exit
}
echo
read -p "Note for destination $DST.log: " NOTE
echo
echo -ne " 🍄 Copy files from $SRC to $DST"
cp -rp $SRC $DST
cp $SRC.copy.log $DST.copy.log
echo >> $DST.copy.log
echo "`date +'%d/%m/%Y %H:%M:%S'` Copy from $SRC" >> $DST.copy.log
echo $NOTE >> $DST.copy.log
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Export old database $SRC"
mysqldump -u${DBUSER} -p${DBPASS} $SRC > $SRC.sql
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Create new database $DST"
mysql -u${DBUSER} -p${DBPASS} -e "create database $DST"
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Create database user $DST with password '1234' ..."
mysql -uroot -p1234 -e "CREATE USER $DST@localhost IDENTIFIED BY \"1234\""
mysql -uroot -p1234 -e "GRANT ALL ON $DST.* TO $DST@localhost"
mysql -uroot -p1234 -e "FLUSH PRIVILEGES"
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Import old database $SRC to new $DST"
mysql -u${DBUSER} -p${DBPASS} $DST < $SRC.sql
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🍒 Drupal settings.php"
cd $DST
sed -i "s/$SRC/$DST/g" sites/default/settings.php
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🍒 link html to $DST"
unlink /var/www/html
ln -s /var/www/sites/$DST /var/www/html
if [ $? = 0 ]; then ok; else fail; fi
echo
ls -l --color=auto /var/www/html
echo
echo -ne " 🌈 Restart httpd "
systemctl restart httpd
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🌈 Restart php "
systemctl restart php-fpm
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🌈 Restart mysql "
systemctl restart mysql
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🚀 Drupal clear cache "
drush cr 2> /dev/null
if [ $? = 0 ]; then ok; else fail; fi
echo

164
toolbox/db Executable file
View File

@ -0,0 +1,164 @@
#!/bin/bash
RED="\e[0;31m"
GRN="\e[0;32m"
BLU="\e[0;34m"
WHT="\e[0;97m"
BOLDRED="\e[1;31m"
BOLDGRN="\e[1;32m"
BOLDBLU="\e[1;34m"
BOLDWHT="\e[1;97m"
END="\e[00m"
DBUSER="root"
DBPASS="1234"
function usage() {
echo
echo -e " ${BOLDWHT}db${END} v1.0 is a simple MySQL tool"
echo
echo -e " 🌈 \e[1mList\e[0m"
echo -e "${WHT}./db ${BOLDBLU}-lu${END} List users"
echo -e "${WHT}./db ${BOLDBLU}-ld${END} List databases"
echo -e "${WHT}./db ${BOLDBLU}-lt${BLU} dbname${END} List tables from dbname"
echo
echo -e " 🔥 \e[1mDelete\e[0m"
echo -e "${WHT}./db ${BOLDRED}-d${RED} xzy${END} Delete user & database"
echo -e "${WHT}./db ${BOLDRED}-du${RED} xzy${END} Delete user"
echo -e "${WHT}./db ${BOLDRED}-dd${RED} xzy${END} Delete database"
echo
echo -e " 🌱 \e[1mCreate\e[0m"
echo -e "${WHT}./db ${BOLDGRN}-c${GRN} xzy${END} Create user & database"
echo -e "${WHT}./db ${BOLDGRN}-cu${GRN} xzy${END} Create user"
echo -e "${WHT}./db ${BOLDGRN}-cd${GRN} xzy${END} Create database"
echo
echo -e " 🛟 \e[1mBackup\e[0m"
echo -e "${WHT}./db ${BOLDBLU}-e${BLU} dbname${END} Export database to dbname.sql"
echo -e "${WHT}./db ${BOLDBLU}-i${BLU} dbname dump.sql${END} Import dump.sql into dbname"
echo
exit
}
# List
function list_databases() {
mysql -u${DBUSER} -p${DBPASS} -Nse 'show databases' | grep -Ev '(information_schema|mysql|performance_schema)'
}
function list_users() {
mysql -u${DBUSER} -p${DBPASS} -Nse "SELECT user FROM mysql.user WHERE user NOT IN ('root','mysql','mariadb.sys','mysql.sys')"
}
function list_tables() {
echo -e "Database ${BOLDBLU}${1}${END} contains ${BOLDWHT}$(mysql -u${DBUSER} -p${DBPASS} -Nse "use $1; show tables;" | wc -l)${END} tables"
}
# DELETE
function delete_database() {
mysql -u${DBUSER} -p${DBPASS} -e "drop database $1"
list_databases | grep -e "^$1$"
}
function delete_user() {
mysql -u${DBUSER} -p${DBPASS} -e "DROP USER '$1'@'localhost'"
list_users | grep -e "^$1$"
}
function delete_all() {
delete_user $1
delete_database $1
}
# CREATE
function create_database() {
mysql -u${DBUSER} -p${DBPASS} -e "create database $1"
echo -e "Database created: ${BOLDGRN}$(list_databases | grep $1)${END}"
}
function create_user() {
mysql -u${DBUSER} -p${DBPASS} -e "CREATE USER $1@localhost IDENTIFIED BY '1234'"
mysql -u${DBUSER} -p${DBPASS} -e "GRANT ALL ON $1.* TO $1@localhost"
echo -e "User created: ${BOLDGRN}$(list_users | grep $1)${END}"
}
function create_all() {
create_database $1
create_user $1
}
# BACKUP
function export_database() {
mysqldump -u${DBUSER} -p${DBPASS} $1 > $1.sql
ls -l $1.sql
}
function import_database() {
echo -e "Before import database ${BOLDBLU}${1}${END} contains ${BOLDWHT}$(mysql -u${DBUSER} -p${DBPASS} -Nse "use $1; show tables;" | wc -l)${END} tables"
mysql -u${DBUSER} -p${DBPASS} $1 < $2
echo -e "After import database ${BOLDBLU}${1}${END} contains ${BOLDWHT}$(mysql -u${DBUSER} -p${DBPASS} -Nse "use $1; show tables;" | wc -l)${END} tables"
systemctl restart mysql
}
for i in "$@"
do
case $i in
-h)
usage
exit
;;
-lu)
list_users
exit
;;
-ld)
list_databases
exit
;;
-lt)
list_tables $2
exit
;;
-dd)
delete_database $2
exit
;;
-du)
delete_user $2
exit
;;
-d)
delete_all $2
exit
;;
-cd)
create_database $2
exit
;;
-cu)
create_user $2
exit
;;
-c)
create_all $2
exit
;;
-e)
export_database $2
exit
;;
-i)
import_database $2 $3
exit
;;
*)
usage
exit
;;
esac
done
usage

BIN
toolbox/db.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

10
toolbox/delete Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
rm -rf $1
rm -r $1.sql
rm -r $1.copy.log
rm -r $1.composer.log
db -du $1
db -dd $1

59
toolbox/html Executable file
View File

@ -0,0 +1,59 @@
#!/bin/bash
RED="\e[0;31m"
GRN="\e[0;32m"
BLU="\e[0;34m"
WHT="\e[0;97m"
BOLDRED="\e[1;31m"
BOLDGRN="\e[1;32m"
BOLDBLU="\e[1;34m"
BOLDWHT="\e[1;97m"
END="\e[00m"
BASE_PATH="/var/www"
function ok() {
echo -e "${BOLDGRN}[ OK ]${END}"
}
function fail() {
echo -e "${BOLDRED}[FAIL]${END}"
exit
}
if [ $# -eq 0 ]; then
echo
ls --color=auto -l $BASE_PATH/html
echo
exit
fi
unlink $BASE_PATH/html
ln -s $BASE_PATH/sites/$1 $BASE_PATH/html
chown apache:apache $BASE_PATH/html -R
echo
ls -l --color=auto $BASE_PATH/html
echo
echo -ne " 🍄 Restart httpd "
systemctl restart httpd
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🍒 Restart php "
systemctl restart php-fpm
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Restart mysql "
systemctl restart mysql
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Drupal clear cache "
cd $1 && drush cr 2> /dev/null
if [ $? = 0 ]; then ok; else fail; fi
echo
cd ..
tail -n 10 $1.copy.log
echo

144
toolbox/new Executable file
View File

@ -0,0 +1,144 @@
#!/bin/bash
#
# Create new Drupal installation
# + database
# + database user
#
RED="\e[0;31m"
GRN="\e[0;32m"
BLU="\e[0;34m"
WHT="\e[0;97m"
BOLDRED="\e[1;31m"
BOLDGRN="\e[1;32m"
BOLDBLU="\e[1;34m"
BOLDWHT="\e[1;97m"
END="\e[00m"
DBUSER="root"
DBPASS="1234"
NAME=$1
function ok() {
echo -e "${BOLDGRN} [ OK ]${END}"
}
function fail() {
echo -e "${BOLDRED} [FAIL]${END}"
echo
exit
}
echo
echo -ne " 💧 Create new drupal in dir ${WHT}$NAME${END} ..."
CMD="composer --no-interaction create-project drupal/recommended-project:9.3.12 $NAME > /dev/null 2>&1"
CMD="composer create-project drupal/recommended-project:9 $NAME"
sudo su -l apache -s /bin/bash -c "cd $PWD; $CMD"
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Create database ${WHT}$NAME${END} ..."
mysql -uroot -p1234 -e "CREATE DATABASE $NAME"
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Create database user ${WHT}$NAME${END} with password '1234' ..."
mysql -uroot -p1234 -e "CREATE USER $NAME@localhost IDENTIFIED BY \"1234\""
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Grand user ${WHT}${NAME}${END} permissions to database ${WHT}${NAME}${END} ..."
mysql -uroot -p1234 -e "GRANT ALL ON $NAME.* TO $NAME@localhost"
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐬 Flush privilages ..."
mysql -uroot -p1234 -e "FLUSH PRIVILEGES"
if [ $? = 0 ]; then ok; else fail; fi
# echo -ne " 🍒 Drupal settings.php"
# cd $NAME/web
# cp sites/default/default.settings.php sites/default/settings.php
# cat >> sites/default/settings.php <<EOL
# \$databases['default']['default'] = array (
# 'database' => '$NAME',
# 'username' => '$NAME',
# 'password' => '1234',
# 'prefix' => '',
# 'host' => 'localhost',
# 'port' => '3306',
# 'namespace' => 'Drupal\\\\mysql\\\\Driver\\\\Database\\\\mysql',
# 'driver' => 'mysql',
# 'autoload' => 'core/modules/mysql/src/Driver/Database/mysql/',
# );
# EOL
# if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🐷 Change files owner to user ${WHT}apache${END}"
cd $NAME/web
mkdir sites/default/files
cd ../..
chown apache:apache $NAME -R
find $NAME -type d -exec chmod 755 {} \;
find $NAME -type f -exec chmod 644 {} \;
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🍒 link html to ${WHT}$NAME${END}"
unlink /var/www/html
ln -s /var/www/sites/$NAME/web /var/www/html
if [ $? = 0 ]; then ok; else fail; fi
echo
ls -l --color=auto /var/www/html
echo
echo -ne " 🌈 Restart httpd "
systemctl restart httpd
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🌈 Restart php "
systemctl restart php-fpm
if [ $? = 0 ]; then ok; else fail; fi
echo -ne " 🌈 Restart mysql "
systemctl restart mysql
if [ $? = 0 ]; then ok; else fail; fi
echo
echo -e "Finish the installation..."
echo
echo -e "URL : http://192.168.56.101"
echo -e "Database: ${NAME}"
echo -e "Username: ${NAME}"
echo -e "Password: 1234"
echo
read -p "...and press [ENTER] to continue installing extra modules"
echo
exit
echo -e "🍓"
# Headless backend rest api server
drush en serialization
drush en rest
drush en jsonapi
drush cr
composer require 'drupal/rest_views:^2.0'
drush en rest_views
composer require 'drupal/restui:^1.21'
drush en restui
composer require 'drupal/rpb:^1.0@beta'
#composer require 'drupal/decoupled_rest_views:^1.0@alpha'
#composer require 'drupal/entity_rest_extra:^2.1'
#composer require 'drupal/rest_entity_recursive:^2.0@RC'
# Devel
composer require 'drupal/rest_views:^2.0'
composer require 'drupal/devel'
rm -rf vendor/autoload.php vendor/autoload_runtime.php vendor/composer
composer install
drush cr
drush en devel_generate