#!/bin/bash
-cd ~/Maildir
-# Build lists sublists
-find lists -maxdepth 1 -mindepth 1 -type d |perl -ne 'chomp; $a = $_; $b = $a; $b =~ s/\./_/g; $b =~ s/\//./g; qx(ln -sf $a .$b)'
-# Build bugs sublists
-find bugs -maxdepth 1 -mindepth 1 -type d |perl -ne 'chomp; $a = $_; $b = $a; $b =~ s/\./_/g; $b =~ s/\//./g; qx(ln -sf $a .$b)'
+set -e
-# Remove dead lists
-#find ~/Maildir/lists/ -type d -maxdepth 1 -mindepth 1|xargs -n 1 -i sh -c '(( $(find "{}" -type f -iname "*" |wc -l) <= 1 )) && rm -rf "{}"'
-
-find ~/Maildir/lists/ -maxdepth 1 -mindepth 1 -type d|xargs -n 1 -i sh -c 'A={}; (( $(find $A -type f -name "*" -not -name "dovecot*" | wc -l) == 0 )) && rm -rf $A'
-find ~/Maildir/bugs/ -maxdepth 1 -mindepth 1 -type d|xargs -n 1 -i sh -c 'A={}; (( $(find $A -type f -name "*" -not -name "dovecot*" |wc -l) == 0 )) && rm -rf $A'
-
-# Remove broken symlinks
-find . -maxdepth 1 -mindepth 1 -type l -iname '.*' -not -xtype d -print0 |xargs -0 rm -f
\ No newline at end of file
+for maildir in Maildir Mail; do
+ if ! [ -e ~/$maildir ]; then
+ continue
+ fi;
+ ( cd ~/$maildir ;
+ for listtype in lists bugs; do
+ find . -maxdepth 1 -mindepth 1 -type d -iname "$listtype"'.*' -print0|
+ xargs -0 -i bash -c 'A={}; (( $(find "$A" -type f -name "*" -not -name "dovecot*" -not -name ".imap*" -not -name ".customflags" | wc -l) == 0 )) && rm -rf "$A"';
+ done;
+ find . -maxdepth 1 -mindepth 1 -type l -iname '.*' -not -xtype d -delete;
+ );
+ exit 0;
+fi;