diff --git a/sympa/resources/tools/sympa_purge.bash b/sympa/resources/tools/sympa_purge.bash index d5a3d32..bb7942c 100755 --- a/sympa/resources/tools/sympa_purge.bash +++ b/sympa/resources/tools/sympa_purge.bash @@ -4,84 +4,60 @@ SYMPA_CONF=/etc/sympa/sympa/sympa.conf SYMPA_DOMAIN=$(grep '^domain' "$SYMPA_CONF" | cut -f2) +FORCE=false ### 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/ARCHIVE + for arc_entry in /var/lib/sympa/arc/*; do + arc_name=$(basename "$arc_entry") + if [[ $arc_name != '*' ]] && [[ $arc_name != *"@$SYMPA_DOMAIN" ]]; then + $FORCE && 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 + $FORCE && 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 + $FORCE && 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 + $FORCE && 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 + $FORCE && rm /var/spool/sympa/viewmail/mod/"$mod_name" -rf + echo "viewmail/mod [$mod_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 set -Eeu - purge