Changeset View
Changeset View
Standalone View
Standalone View
databases/mariadb106-server/files/mariadb106-server.in
- This file was added.
#!/bin/sh | |||||
# PROVIDE: mariadb106 | |||||
# REQUIRE: LOGIN | |||||
# KEYWORD: shutdown | |||||
# | |||||
# Add the following line to /etc/rc.conf to enable mysql: | |||||
# mariadb106_(instance_)?enable (bool): Set to "NO" by default. | |||||
# Set it to "YES" to enable MySQL. | |||||
%%LEGACY_LIMITS%%# mariadb106_(instance_)?limits (bool): Set to "NO" by default. | |||||
%%LEGACY_LIMITS%%# Set it to yes to run `limits -e -U mysql` | |||||
%%LEGACY_LIMITS%%# just before mysql starts. | |||||
# mariadb106_(instance_)?dbdir (str): Default to "%%MARIADB_DBDIR%%" | |||||
# Base database directory. | |||||
# mariadb106_(instance_)?args (str): Custom additional arguments to be passed | |||||
# to mysqld_safe (default empty). | |||||
# mariadb106_(instance_)?pidfile (str): Custom PID file path and name. | |||||
# Default to "${mariadb106_dbdir}/${hostname}.pid". | |||||
# mariadb106_(instance_)?user (str): User to run mysqld as | |||||
# Default to "%%MARIADB_USER%%" created by the port | |||||
# mariadb106_(instance_)?optfile (str): Server-specific option file. | |||||
# Default to "${mariadb106_dbdir}/my.cnf". | |||||
# mariadb106_(instance)?rundir (str): Default to "%%MARIADB_RUNDIR%%" | |||||
# mariadb106_instances (str): Set to "" by default. | |||||
# If defined, list of instances to enable | |||||
. /etc/rc.subr | |||||
name="mariadb106" | |||||
rcvar=mariadb106_enable | |||||
load_rc_config $name | |||||
: ${mariadb106_enable="NO"} | |||||
%%LEGACY_LIMITS%%: ${mariadb106_limits="NO"} | |||||
: ${mariadb106_user="%%MARIADB_USER%%"} | |||||
%%LEGACY_LIMITS%%mariadb106_limits_args="-e -U ${mariadb106_user}" | |||||
: ${mariadb106_dbdir="%%MARIADB_DBDIR%%"} | |||||
: ${mariadb106_optfile="%%ETCDIR%%/my.cnf"} | |||||
: ${mariadb106_rundir="%%MARIADB_RUNDIR%%"} | |||||
command="/usr/sbin/daemon" | |||||
procname="%%PREFIX%%/libexec/mariadbd" | |||||
start_precmd="${name}_prestart" | |||||
start_postcmd="${name}_poststart" | |||||
if [ -n "$2" ]; then | |||||
instance="$2" | |||||
load_rc_config ${name}_${instance} | |||||
case "$mariadb106_instances" in | |||||
"$2 "*|*" $2 "*|*" $2"|"$2") | |||||
eval mariadb106_args="\${mariadb106_${instance}_args:-\"${mariadb106_args}\"}" | |||||
eval mariadb106_dbdir="\${mariadb106_${instance}_dbdir:-\"%%MARIADB_DBDIR%%_${instance}\"}" | |||||
%%LEGACY_LIMITS%%eval mariadb106_limits="\${mariadb106_${instance}_limits:-\"${mariadb106_limits}\"}" | |||||
eval mariadb106_user="\${mariadb106_${instance}_user:-\"${mariadb106_user}\"}" | |||||
%%LEGACY_LIMITS%%eval mariadb106_limits_args="\${mariadb106_${instance}_limits_args:-\"-e -U $mariadb106_user\"}" | |||||
eval mariadb106_socket="\${mariadb106_${instance}_socket:-\"%%MARIADB_RUNDIR%%_${instance}/%%MARIADB_SOCK%%\"}" | |||||
eval mariadb106_optfile="\${mariadb106_${instance}_optfile:-\"%%ETCDIR%%_${instance}/my.cnf\"}" | |||||
eval mariadb106_pidfile="\${mariadb106_${instance}_pidfile:-\"%%MARIADB_RUNDIR%%_${instance}/mysqld.pid\"}" | |||||
;; | |||||
*) | |||||
err 1 "$2 not found in mariadb106_instances" ;; | |||||
esac | |||||
else | |||||
if [ -n "${mariadb106_instances}" -a -n "$1" ]; then | |||||
for instance in ${mariadb106_instances}; do | |||||
eval _enable="\${mariadb106_${instance}_enable}" | |||||
case "${_enable:-${mariadb106_enable}}" in | |||||
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) | |||||
continue | |||||
;; | |||||
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) | |||||
;; | |||||
*) | |||||
if [ -z "$_enable" ]; then | |||||
_var=mariadb106_enable | |||||
else | |||||
_var=mariadb106_${instance}_enable | |||||
fi | |||||
warn "Bad value" \ | |||||
"'${_enable:-${mariadb106_enable}}'" \ | |||||
"for ${_var}. " \ | |||||
"Instance ${instance} skipped." | |||||
continue | |||||
;; | |||||
esac | |||||
echo "===> mysql instance: ${instance}" | |||||
if %%PREFIX%%/etc/rc.d/mysql-server $1 ${instance}; then | |||||
success="${instance} ${success}" | |||||
else | |||||
failed="${instance} (${retcode}) ${failed}" | |||||
fi | |||||
done | |||||
exit 0 | |||||
else | |||||
mariadb106_pidfile=${mariadb106_pidfile:-"%%MARIADB_RUNDIR%%/mysqld.pid"} | |||||
fi | |||||
fi | |||||
pidfile=$mariadb106_pidfile | |||||
mariadb106_install_db="%%PREFIX%%/bin/mariadb-install-db" | |||||
mariadb106_install_db_args="--basedir=%%PREFIX%% --datadir=${mariadb106_dbdir} --force" | |||||
command_args="-c -f %%PREFIX%%/bin/mariadbd-safe --defaults-extra-file=${mariadb106_optfile} --user=${mariadb106_user} --datadir=${mariadb106_dbdir} --pid-file=${pidfile} ${mariadb106_socket:+--socket=${mariadb106_socket}} ${mariadb106_args}" | |||||
mariadb106_create_auth_tables() | |||||
{ | |||||
eval $mariadb106_install_db $mariadb106_install_db_args | |||||
[ $? -eq 0 ] && chown -R ${mariadb106_user}:$(id -gn $mariadb106_user) ${mariadb106_dbdir} | |||||
} | |||||
mariadb106_prestart() | |||||
{ | |||||
local dir | |||||
for dir in /etc /usr/local/etc /etc/mysql /var/db/mysql; do | |||||
if [ -f "${dir}/my.cnf" ]; then | |||||
echo "Please merge existing ${dir}/my.cnf file with %%ETCDIR%%/conf.d/server.cnf" | |||||
return 1 | |||||
fi | |||||
done | |||||
if [ ! -d "${mariadb106_dbdir}/mysql/." ]; then | |||||
mariadb106_create_auth_tables || return 1 | |||||
fi | |||||
mariadb106_group="`/usr/bin/id -gn ${mariadb106_user}`" | |||||
[ "${mariadb106_socket}" = "" ] && mariadb106_rundir="%%MARIADB_RUNDIR%%" || mariadb106_rundir="`/usr/bin/dirname ${mariadb106_socket}`" | |||||
if [ ! -d "${mariadb106_rundir}" ]; then | |||||
install -d -o ${mariadb106_user} -g ${mariadb106_group} "${mariadb106_rundir}" | |||||
fi | |||||
%%LEGACY_LIMITS%% if checkyesno mariadb106_limits; then | |||||
%%LEGACY_LIMITS%% eval `/usr/bin/limits ${mariadb106_limits_args}` 2>/dev/null | |||||
%%LEGACY_LIMITS%% else | |||||
%%LEGACY_LIMITS%% return 0 | |||||
%%LEGACY_LIMITS%% fi | |||||
%%MODERN_LIMITS%% return 0 | |||||
if [ ! -d "${mariadb106_rundir}" ]; then | |||||
install -d -u${mariadb106_user} -g$(id -gn $mariadb106_user) -m755 ${mariadb106_rundir} | |||||
fi | |||||
} | |||||
mariadb106_poststart() | |||||
{ | |||||
local timeout=15 | |||||
while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do | |||||
timeout=$(( timeout - 1 )) | |||||
sleep 1 | |||||
done | |||||
return 0 | |||||
} | |||||
run_rc_command "$1" |