aboutsummaryrefslogtreecommitdiffstats
path: root/listsize
diff options
context:
space:
mode:
Diffstat (limited to 'listsize')
-rwxr-xr-xlistsize31
1 files changed, 26 insertions, 5 deletions
diff --git a/listsize b/listsize
index e677fd7a..73e25887 100755
--- a/listsize
+++ b/listsize
@@ -1,15 +1,36 @@
#!/bin/sh
#
# Mine list sizes from MailMan web interfaces
+#
+# * Must set environment variable FETCHMAIL_LIST_PASS to list admin password
+
+project="fetchmail"
+admin="http://lists.berlios.de/mailman/admin"
+adminpw=$FETCHMAIL_LIST_PASS
-admin="http://lists.ccil.org/mailman/admin"
list="$1"
-tmp="/usr/tmp/listsize.$$"
+if [ ! "$list" ]; then
+ echo "Usage: $0 list" 1>&2
+ exit 1
+fi
+case "$list" in
+$project-*)
+ # already gave us the full name, e.g. fetchmail-announce
+ ;;
+*)
+ # only gave us the last part of the name, e.g. announce
+ list="$project-$list"
+ ;;
+esac
+hexpw=`echo "$adminpw" | od -t x1 -w64 | sed -e 's/^[0-9]*//' -e '/^ *$/d' -e 's/ /%/g'`
+umask 077
+tmp="/tmp/$project-$list.listsize.$$"
# First get the login cookie...
-curl -s -D $tmp $admin/fetchmail-${list}?adminpw=mypaswrd >/dev/null
+curl -s -D "$tmp" "$admin/${list}?adminpw=$hexpw" >/dev/null
# Second gets the actual stat
-curl -s -b $tmp $admin/fetchmail-${list}/members \
- | sed -n '/.*>\([0-9][0-9]*\) members total.*/s//\1/p'
+curl -s -b "$tmp" "$admin/${list}/members" \
+ | sed -n '/.*>(\([0-9][0-9]*\) members total.*/s//\1/p'
+rm -f "$tmp"
# end