From 598790551ac69725477257cd46745f8002a3ae97 Mon Sep 17 00:00:00 2001 From: Daniel Bistriceanu Date: Tue, 17 Feb 2026 11:54:59 +0200 Subject: [PATCH 1/2] Add plugin.conf with static id DirectAdmin v1.694 now requires a plugin.conf with a static id --- .gitattributes | 2 +- plugin.conf.new => plugin.conf | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename plugin.conf.new => plugin.conf (84%) diff --git a/.gitattributes b/.gitattributes index b200a3d..7f95a72 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,4 @@ .github export-ignore .gitignore export-ignore .gitattributes export-ignore -plugin.conf.new export-subst +plugin.conf export-subst diff --git a/plugin.conf.new b/plugin.conf similarity index 84% rename from plugin.conf.new rename to plugin.conf index eb9baaf..c7975c0 100644 --- a/plugin.conf.new +++ b/plugin.conf @@ -1,8 +1,8 @@ active=yes author=SpamExperts -id= +id=prospamfilter installed=yes -name="Professional Spam Filter" +name=Professional Spam Filter update_url=http://download.cdn.seinternal.com/releases/addons/directadmin/latest.tar.gz version=4.0.$Format:%at$ version_url=http://download.cdn.seinternal.com/releases/addons/directadmin/latest_version.html From 5d11a984a56169d2403ea4622cf52c906dc881fc Mon Sep 17 00:00:00 2001 From: Daniel Bistriceanu Date: Tue, 17 Feb 2026 12:06:01 +0200 Subject: [PATCH 2/2] Adjust install, uninstall and update scripts Remove plugin.conf custom handling based on plugin.conf.new template Make install.sh executable so install on v1.694 does not crash with 500 --- scripts/install.sh | 33 ++++++++++++++++----------------- scripts/uninstall.sh | 6 +++--- scripts/update.sh | 22 ++++++---------------- 3 files changed, 25 insertions(+), 36 deletions(-) mode change 100644 => 100755 scripts/install.sh diff --git a/scripts/install.sh b/scripts/install.sh old mode 100644 new mode 100755 index 73f5462..94ed30b --- a/scripts/install.sh +++ b/scripts/install.sh @@ -1,9 +1,9 @@ #!/bin/bash -pluginpath=$DOCUMENT_ROOT../; -DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ); -PDIR="$(dirname "$DIR")"; -PLUGIN=${PDIR##*/}; +pluginpath=$DOCUMENT_ROOT../ +DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +PDIR="$(dirname "$DIR")" +PLUGIN=${PDIR##*/} HOOKFILES="$PDIR/hooks/*" HOOKSCRIPTS="$PDIR/scripts/hooks/*" @@ -13,27 +13,26 @@ USERFILES="$PDIR/user/*" CONFFILE="$PDIR/plugin.conf" LIBFILES="$PDIR/lib/*" -mv "$pluginpath/configuration.conf.new" "$pluginpath/configuration.conf"; -mv "$pluginpath/directadminapi.conf.new" "$pluginpath/directadminapi.conf"; -mv "$pluginpath/plugin.conf.new" "$pluginpath/plugin.conf"; +mv "$pluginpath/configuration.conf.new" "$pluginpath/configuration.conf" +mv "$pluginpath/directadminapi.conf.new" "$pluginpath/directadminapi.conf" ALLFILES="$HOOKFILES $HOOKSCRIPTS $ADMINFILES $RESELLERFILES $USERFILES $LIBFILES $CONFFILE" for file in $ALLFILES; do - sed -i -e "s//$PLUGIN/g" $file -done; + sed -i -e "s//$PLUGIN/g" $file +done echo "Adding hooks to DirectAdmin
" for hook in domain_create_post domain_destroy_post domain_pointer_create_post domain_pointer_destroy_post; do - if [ -e "$pluginpath../../scripts/custom/$hook.sh" ] ; then - echo "WARNING! - hook file '$hook.sh' already exist
"; + if [ -e "$pluginpath../../scripts/custom/$hook.sh" ]; then + echo "WARNING! - hook file '$hook.sh' already exist
" else cp "$pluginpath/scripts/hooks/$hook.sh" "$pluginpath../../scripts/custom/" chmod 770 "$pluginpath../../scripts/custom/$hook.sh" chown diradmin:diradmin "$pluginpath../../scripts/custom/$hook.sh" fi -done; +done echo "Creating configuration files
" @@ -42,21 +41,21 @@ chown -R diradmin:diradmin $pluginpath/* # creating configuration files for conf in configuration.conf directadminapi.conf plugin.conf; do - if [ ! -e "$pluginpath$conf" ] ; then + if [ ! -e "$pluginpath$conf" ]; then touch "$pluginpath$conf" fi chmod 660 "$pluginpath$conf" chown diradmin:diradmin "$pluginpath$conf" -done; +done chown root:root "$pluginpath/scripts/getconfig" 2>&1 chmod 4755 "$pluginpath/scripts/getconfig" 2>&1 if [ ! -e "$pluginpath/logs" ]; then - mkdir "$pluginpath/logs" + mkdir "$pluginpath/logs" fi chmod 777 "$pluginpath/logs" chown diradmin:diradmin "$pluginpath/logs" -echo "Plugin Installed!
"; -exit 0; +echo "Plugin Installed!
" +exit 0 diff --git a/scripts/uninstall.sh b/scripts/uninstall.sh index 53cafdb..37994ad 100644 --- a/scripts/uninstall.sh +++ b/scripts/uninstall.sh @@ -12,9 +12,9 @@ for hook in domain_create_post domain_destroy_post domain_pointer_create_post do cmp --silent $installedhook "${DOCUMENT_ROOT}hooks/$hook.sh" if [ $? -ne 0 ]; then echo "WARNING! - hook file '$hook.sh' differs from the plugin's one. Skipping it.
" - else - rm "$pluginpath../../scripts/custom/$hook.sh" - fi + else + rm "$pluginpath../../scripts/custom/$hook.sh" + fi done echo "Plugin Un-Installed!" diff --git a/scripts/update.sh b/scripts/update.sh index 5d427f7..6c91c33 100644 --- a/scripts/update.sh +++ b/scripts/update.sh @@ -1,7 +1,7 @@ #!/bin/bash pluginpath=$DOCUMENT_ROOT../ -DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) +DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) PDIR="$(dirname "$DIR")" PLUGIN=${PDIR##*/} @@ -16,7 +16,7 @@ LIBFILES="$PDIR/lib/*" ALLFILES="$HOOKFILES $HOOKSCRIPTS $ADMINFILES $RESELLERFILES $USERFILES $LIBFILES $CONFFILE" for file in $ALLFILES; do - sed -i -e "s//$PLUGIN/g" $file + sed -i -e "s//$PLUGIN/g" $file done chmod -R 755 $pluginpath/* @@ -24,7 +24,7 @@ chown -R diradmin:diradmin $pluginpath/* # creating configuration files for conf in configuration.conf directadminapi.conf plugin.conf; do - if [ ! -e "$pluginpath$conf" ] ; then + if [ ! -e "$pluginpath$conf" ]; then touch "$pluginpath$conf" fi chmod 660 "$pluginpath$conf" @@ -35,23 +35,13 @@ chown root:root "$pluginpath/scripts/getconfig" 2>&1 chmod 4755 "$pluginpath/scripts/getconfig" 2>&1 if [ ! -e "$pluginpath/logs" ]; then - mkdir "$pluginpath/logs" + mkdir "$pluginpath/logs" fi chmod 777 "$pluginpath/logs" chown diradmin:diradmin "$pluginpath/logs" -rm "$pluginpath/configuration.conf.new"; -rm "$pluginpath/directadminapi.conf.new"; - -# update plugin.conf with new version number and urls -newupdateurl=$(grep "^update_url=.*$" "$pluginpath/plugin.conf.new") -sed -i -e "s|^update_url=.*$|$newupdateurl|" "$pluginpath/plugin.conf" -newversion=$(grep "^version=.*$" "$pluginpath/plugin.conf.new") -sed -i -e "s|^version=.*$|$newversion|" "$pluginpath/plugin.conf" -newversionurl=$(grep "^version_url=.*$" "$pluginpath/plugin.conf.new") -sed -i -e "s|^version_url=.*$|$newversionurl|" "$pluginpath/plugin.conf" - -rm "$pluginpath/plugin.conf.new" +rm "$pluginpath/configuration.conf.new" +rm "$pluginpath/directadminapi.conf.new" echo "Plugin has been updated!"