2024-08-09 12:50:33 +00:00
#!/usr/bin/env bash
# Exit if any errors pop up
set -e
# Remove sock
rm -f /run/mysqld/mysqld.sock
# Abort if setup hasn't been completed yet
if [ ! -d /var/lib/mysql/mysql/ ]
then
echo "MariaDB does not appear to be properly installed. Exiting..."
exit 1
fi
# Function to wait for temporary mariadb to be ready
function wait_for_mariadb_start
{
# Start mariadb
mariadbd-safe --user= root --datadir= /var/lib/mysql/ &
until mariadb --user= root --database= mysql -e "show tables;" >/dev/null
do
sleep 1
done
}
# Function to wait for mariadb to fully exit
function wait_for_mariadb_stop
{
mariadb --user= root -e "shutdown;"
until ! mariadb --user= root --database= mysql -e "show tables;" >/dev/null
do
sleep 1
done
}
# Roundcube database
if [ ! -d /var/lib/mysql/${ MYVEMAIL_ROUNDCUBE_DBNAME } / ]
then
wait_for_mariadb_start
mariadb -u root <<- ROUNDCUBE
CREATE DATABASE ${ MYVEMAIL_ROUNDCUBE_DBNAME } CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON ${ MYVEMAIL_ROUNDCUBE_DBNAME } .* TO '${MYVEMAIL_ROUNDCUBE_DBUSER}' @'localhost' IDENTIFIED BY '${MYVEMAIL_ROUNDCUBE_DBPASS}' ;
flush privileges;
ROUNDCUBE
mariadb ${ MYVEMAIL_ROUNDCUBE_DBNAME } </usr/share/webapps/roundcube/SQL/mysql.initial.sql
wait_for_mariadb_stop
fi
# Postfixadmin database
if [ ! -d /var/lib/mysql/${ MYVEMAIL_POSTFIXADMIN_DBNAME } / ]
then
wait_for_mariadb_start
mariadb -u root <<- POSTFIXADMIN
CREATE DATABASE ${ MYVEMAIL_POSTFIXADMIN_DBNAME } ;
GRANT ALL PRIVILEGES ON ${ MYVEMAIL_POSTFIXADMIN_DBNAME } .* to '${MYVEMAIL_POSTFIXADMIN_DBUSER}' @'localhost' IDENTIFIED BY '${MYVEMAIL_POSTFIXADMIN_DBPASS}' ;
flush privileges;
POSTFIXADMIN
wait_for_mariadb_stop
fi
# Start mariadb
2024-12-14 04:09:03 +00:00
mariadbd --user= root \
--datadir= /var/lib/mysql/ \
--pid-file= /run/mysqld/mysqld.pid &