mirror of
https://github.com/libretro/Lakka-LibreELEC.git
synced 2024-12-16 13:48:56 +00:00
72 lines
2.3 KiB
Bash
Executable File
72 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
|
|
|
_create_bin_link() {
|
|
[ ! -L ${ADDON_DIR}/bin/${2} ] && ln -sfn ${1} ${ADDON_DIR}/bin/${2}
|
|
}
|
|
|
|
. /etc/profile
|
|
oe_setup_addon service.mariadb
|
|
|
|
# create dir for socket and pid
|
|
mkdir -p /run/mysqld
|
|
|
|
# exit if already running
|
|
PID=$(ps aux | awk '/\/bin\/mariadbd/ {print $1; exit 0}')
|
|
if [ -n "${PID}" ]; then
|
|
echo "MariaDB server is already running"
|
|
exit 0
|
|
fi
|
|
|
|
# create symbolic links
|
|
_create_bin_link mariadb mysql
|
|
_create_bin_link mariadb-admin mysqladmin
|
|
_create_bin_link mariadb-dump mysqldump
|
|
_create_bin_link mariadb-secure-installation mysql_secure_installation
|
|
_create_bin_link mariadb-upgrade mysql_upgrade
|
|
_create_bin_link mariadb-install-db mysql_install_db
|
|
|
|
# copy config file
|
|
if [ ! -f ${ADDON_HOME}/my.cnf ]; then
|
|
cp ${ADDON_DIR}/config/my.cnf ${ADDON_HOME}
|
|
fi
|
|
|
|
# install database
|
|
if [ ! -d "${ADDON_HOME}/data/mysql" ]; then
|
|
mkdir -p ${ADDON_HOME}/data
|
|
echo "Installing database"
|
|
${ADDON_DIR}/bin/mariadb-install-db --basedir=${ADDON_DIR} --datadir=${ADDON_HOME}/data
|
|
fi
|
|
|
|
# check for first run and generate passwords
|
|
if grep -q "@MYSQL_ROOT_PASS@" ${ADDON_HOME}/settings.xml; then
|
|
MYSQL_ROOT_PASS="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8)"
|
|
MYSQL_KODI_PASS="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8)"
|
|
|
|
sed -e "s|@MYSQL_ROOT_PASS@|${MYSQL_ROOT_PASS}|g" \
|
|
-e "s|@MYSQL_KODI_PASS@|${MYSQL_KODI_PASS}|g" \
|
|
-i ${ADDON_HOME}/settings.xml
|
|
fi
|
|
|
|
# init script to create user kodi and change passwords
|
|
init_file=""
|
|
if [[ ! -f ${ADDON_HOME}/set_mysql_passwords.sql ]] || [[ ${ADDON_HOME}/settings.xml -nt ${ADDON_HOME}/set_mysql_passwords.sql ]]; then
|
|
cat << SQL_DATA > ${ADDON_HOME}/set_mysql_passwords.sql
|
|
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('${MYSQL_ROOT_PASS}');
|
|
CREATE USER IF NOT EXISTS 'kodi';
|
|
CREATE USER IF NOT EXISTS 'kodi'@'localhost';
|
|
SET PASSWORD FOR 'kodi'=PASSWORD('${MYSQL_KODI_PASS}');
|
|
SET PASSWORD FOR 'kodi'@'localhost'=PASSWORD('${MYSQL_KODI_PASS}');
|
|
GRANT ALL ON *.* TO 'kodi';
|
|
GRANT ALL ON *.* TO 'kodi'@'localhost';
|
|
flush privileges;
|
|
SQL_DATA
|
|
|
|
init_file="--init-file=${ADDON_HOME}/set_mysql_passwords.sql"
|
|
fi
|
|
|
|
echo "Starting mariadbd"
|
|
MYSQL_HOME="${ADDON_HOME}" exec ${ADDON_DIR}/bin/mariadbd ${init_file} &
|