#!/bin/bash set -euo pipefail PLUGIN_DIR="$(cd "$(dirname "$0")/.." && pwd)" CPIF="/usr/local/directadmin/data/admin/custom_package_items.conf" SUDOERS_FILE="/etc/sudoers.d/directadmin-alt-mysql-plugin" CRON_FILE="/etc/cron.d/alt-mysql-jobs" CSF_ALLOW_FILE="/etc/csf/csf.allow" CSF_MANAGED_ALLOW_FILE="/etc/csf/alt-mysql-plugin.allow" DA_INTEGRATION_INSTALLER="$(cd "$(dirname "$0")/.." && pwd)/scripts/setup/da_integration_install.sh" CUSTOMBUILD_HOOKS_INSTALLER="$(cd "$(dirname "$0")/.." && pwd)/scripts/setup/custombuild_hooks_install.sh" read_plugin_setting() { local key="$1" local default="$2" local file="$PLUGIN_DIR/plugin-settings.conf" local line value [ -r "$file" ] || { printf '%s\n' "$default" return 0 } line="$(grep -E "^${key}=" "$file" | tail -n 1 || true)" if [ -z "$line" ]; then printf '%s\n' "$default" return 0 fi value="${line#*=}" value="${value%%#*}" value="${value%\"}" value="${value#\"}" value="${value%\'}" value="${value#\'}" value="$(printf '%s' "$value" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')" printf '%s\n' "${value:-$default}" } cleanup_csf_managed_file() { local managed_file="$1" local tmp include_line changed=0 include_line="Include $managed_file" if [ -f "$CSF_ALLOW_FILE" ]; then tmp="$(mktemp)" grep -Fxv "$include_line" "$CSF_ALLOW_FILE" > "$tmp" || true if ! cmp -s "$tmp" "$CSF_ALLOW_FILE"; then cat "$tmp" > "$CSF_ALLOW_FILE" changed=1 fi rm -f "$tmp" fi if [ -f "$managed_file" ]; then rm -f "$managed_file" changed=1 fi return "$changed" } cleanup_csf_remote_mysql() { local changed=0 configured_managed_allow CSF_ALLOW_FILE="$(read_plugin_setting MYSQL_PLUGIN_CSF_ALLOW_FILE "$CSF_ALLOW_FILE")" configured_managed_allow="$(read_plugin_setting MYSQL_PLUGIN_CSF_MANAGED_ALLOW_FILE "$CSF_MANAGED_ALLOW_FILE")" cleanup_csf_managed_file "$configured_managed_allow" || changed=1 if [ "$changed" -eq 1 ] && command -v csf >/dev/null 2>&1; then csf -r >/dev/null 2>&1 || true fi } if [ "$(id -u)" -eq 0 ]; then if [ -f "$CPIF" ]; then sed -i '/^mysql_enabled=/d' "$CPIF" || true sed -i '/^mysql=/d' "$CPIF" || true sed -i '/^umysql=/d' "$CPIF" || true sed -i '/^mysql_max_databases=/d' "$CPIF" || true sed -i '/^mysql_unlimited=/d' "$CPIF" || true sed -i '/^umysql_max_databases=/d' "$CPIF" || true chown diradmin:diradmin "$CPIF" 2>/dev/null || true chmod 640 "$CPIF" 2>/dev/null || true fi rm -f "$SUDOERS_FILE" "$CRON_FILE" || true cleanup_csf_remote_mysql if [ -x "$DA_INTEGRATION_INSTALLER" ]; then "$DA_INTEGRATION_INSTALLER" uninstall || true fi if [ -x "$CUSTOMBUILD_HOOKS_INSTALLER" ]; then "$CUSTOMBUILD_HOOKS_INSTALLER" uninstall || true fi else echo "mysql: warning: uruchom jako root, aby usunąć wpisy z custom_package_items i sudoers" >&2 fi if [ -f "$PLUGIN_DIR/plugin.conf" ]; then sed -i 's/^active=.*/active=no/' "$PLUGIN_DIR/plugin.conf" || true sed -i 's/^installed=.*/installed=no/' "$PLUGIN_DIR/plugin.conf" || true fi echo "mysql: deaktywowany."