#!/bin/bash set -e do_pre_regen() { pending_dir=$1 cd /usr/share/yunohost/templates/mysql install -D -m 644 my.cnf "${pending_dir}/etc/mysql/my.cnf" } do_post_regen() { regen_conf_files=$1 if [ ! -f /etc/yunohost/mysql ]; then . /usr/share/yunohost/helpers.d/string # ensure that mysql is running service mysql status >/dev/null 2>&1 \ || service mysql start # generate and set new root password mysql_password=$(ynh_string_random 10) sudo mysqladmin -s -u root -pyunohost password "$mysql_password" || { if [ $FORCE -eq 1 ]; then . /usr/share/yunohost/helpers.d/package # retrieve MySQL package provider ynh_package_is_installed "mariadb-server-10.0" \ && mysql_pkg="mariadb-server-10.0" \ || mysql_pkg="mysql-server-5.5" # set new password with debconf sudo debconf-set-selections << EOF $mysql_pkg mysql-server/root_password password $mysql_password $mysql_pkg mysql-server/root_password_again password $mysql_password EOF # reconfigure Debian package sudo dpkg-reconfigure -freadline -u "$mysql_pkg" 2>&1 else echo "MySQL password for root user has been manually changed" \ "and will not be overridden without --force" >&2 fi } # store new root password echo "$mysql_password" | sudo tee /etc/yunohost/mysql sudo chmod 400 /etc/yunohost/mysql fi [[ -z "$regen_conf_files" ]] \ || sudo service mysql restart } FORCE=${2:-0} DRY_RUN=${3:-0} case "$1" in pre) do_pre_regen $4 ;; post) do_post_regen $4 ;; *) echo "hook called with unknown argument \`$1'" >&2 exit 1 ;; esac exit 0