diff --git a/ezmlm-export.sh b/ezmlm-export.sh new file mode 100644 index 0000000..146c645 --- /dev/null +++ b/ezmlm-export.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +rm /root/ezmlm-lists.txt + +echo "domain;list;public_subscription;moderated;" > /root/listconfig.csv +echo "list;member;" > /root/listmembers.csv + +echo "Finding ezmlm directories ..." + +find /var/vpopmail/domains -maxdepth 3 -name ".qmail-*-reject-default" -type l -exec readlink -f {} >> /root/ezmlm-lists.txt \; + +echo "Reading list members ..." + +while IFS= read -r LINE; +do + LISTDIR=$(dirname $LINE) + LISTNAME=$(/usr/bin/basename $LISTDIR) + DOMAIN_DIR=$(/usr/bin/dirname $LISTDIR) + DOMAIN=$(/usr/bin/basename $DOMAIN_DIR) + + echo "$LISTNAME@$DOMAIN" + + if test -f "$LISTDIR/public"; then + PUBLIC_SUBSCRIPTION=1 + else + PUBLIC_SUBSCRIPTION=0 + fi + + if [[ -f "$LISTDIR/modpost" && -f "$LISTDIR/modpostonly" ]]; then + MODERATED=1 + else + MODERATED=0 + fi + + LIST_CONFIG="$DOMAIN;$LISTNAME;$PUBLIC_SUBSCRIPTION;$MODERATED" + echo "$LIST_CONFIG" >> /root/listconfig.csv + echo $LIST_CONFIG + + MEMBERS=$(ezmlm-list $LISTDIR) + while IFS= read -r MEMBER; do + echo "$LISTNAME@$DOMAIN;$MEMBER;" >> /root/listmembers.csv + done <<< "$MEMBERS" +done < /root/ezmlm-lists.txt