107 lines
3.0 KiB
Bash
Executable File
107 lines
3.0 KiB
Bash
Executable File
#!/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."
|