Import alt-mysql plugin
This commit is contained in:
Executable
+106
@@ -0,0 +1,106 @@
|
||||
#!/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."
|
||||
Reference in New Issue
Block a user