You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
2.5 KiB

#!/usr/bin/env bash
### CONSTANTS
SYMPA_CONF=/etc/sympa/sympa/sympa.conf
SYMPA_DOMAIN=$(grep '^domain' "$SYMPA_CONF" | cut -f2)
### FUNCTIONS
function purge {
# LIB/ARCHIVE
for arc_entry in /var/lib/sympa/arc/*; do
arc_name=$(basename "$arc_entry")
if [[ $arc_name != '*' ]] && [[ $arc_name != *"@$SYMPA_DOMAIN" ]]; then
rm /var/lib/sympa/arc/"$arc_name" -rf
echo "archive [$arc_name] removed!"
fi
done
# LIB/BOUNCE
for bounce_entry in /var/lib/sympa/bounce/*; do
bounce_name=$(basename "$bounce_entry")
if [[ $bounce_name != '*' ]] && [[ $bounce_name != *"@$SYMPA_DOMAIN" ]]; then
rm /var/lib/sympa/bounce/"$bounce_name" -rf
echo "bounce [$bounce_name] removed!"
fi
done
# SPOOL/DIGEST
for digest_entry in /var/spool/sympa/digest/*; do
digest_name=$(basename "$digest_entry")
if [[ $digest_name != '*' ]] && [[ $digest_name != *"@$SYMPA_DOMAIN"* ]]; then
rm /var/spool/sympa/digest/"$digest_name" -rf
echo "digest [$digest_name] removed!"
fi
done
# SPOOL/VIEWMAIL/BOUNCE
for bounce_entry in /var/spool/sympa/viewmail/bounce/*; do
bounce_name=$(basename "$bounce_entry")
if [[ $bounce_name != '*' ]] && [[ $bounce_name != *"@$SYMPA_DOMAIN"* ]]; then
rm /var/spool/sympa/viewmail/bounce/"$bounce_name" -rf
echo "viewmail/bounce [$bounce_name] removed!"
fi
done
# SPOOL/VIEWMAIL/MOD
for mod_entry in /var/spool/sympa/viewmail/mod/*; do
mod_name=$(basename "$mod_entry")
if [[ $mod_name != '*' ]] && [[ $mod_name != *"@$SYMPA_DOMAIN"* ]]; then
rm /var/spool/sympa/viewmail/mod/"$mod_name" -rf
echo "viewmail/mod [$mod_name] removed!"
fi
done
}
function create_temp_dir {
temp_dir="$SYMPA_DOMAIN-$(date '+%F')"
mkdir "$temp_dir"
echo "$temp_dir"
}
function export {
echo "temp_dir=$temp_dir"
cd "$temp_dir"
db_name=sympa
db_user=sympa
db_passwd=$(grep '^db_passwd' /etc/sympa/sympa/sympa.conf | cut -f2)
PGPASSWORD=$db_passwd pg_dump -h localhost -U "$db_user" "$db_name" | gzip >"$db_name.psql.gz"
cp "$SYMPA_CONF" .
tar -czvf lib-sympa.tgz /var/lib/sympa
tar -czvf spool-sympa.tgz /var/spool/sympa
cd ..
tar -cf "$temp_dir.sympa" "$temp_dir"
rm "$temp_dir" -rf
}
### MAIN
# execute as root or use `sudo`
[[ $(id -u) != 0 ]] && exec sudo $(dirname "$0")/$(basename "$0")
set -Eeu
purge