summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlocalgotallmail38
1 files changed, 38 insertions, 0 deletions
diff --git a/localgotallmail b/localgotallmail
new file mode 100755
index 0000000..b5022d9
--- /dev/null
+++ b/localgotallmail
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+set -e
+
+if [ -e /etc/adduser.conf ]; then
+ . /etc/adduser.conf
+else
+ echo "/etc/adduser.conf missing. Exiting..."
+ exit 1
+fi
+
+if [ $# -gt 0 ]; then
+ USERS=$*
+else
+ USERS=`getent passwd | awk -F: '{print $1}'`
+fi
+
+for user in $USERS; do
+ HOME=`getent passwd $user | awk -F: '{print $6}' | head -1`
+ if [ -z "$HOME" ]; then
+ echo "User $user doesn't exist. Ignoring..."
+ continue
+ fi
+
+ # Ignore non-human accounts silently
+ [ "$uid" -ge "$FIRST_UID" -a "$uid" -le "$LAST_UID" ] || continue
+
+ [ -d $HOME ] || continue
+# [ -L $HOME ] && continue
+
+ if [ -d $HOME/.gotmail-auth ]; then
+ for line in `cat $HOME/.gotmail-auth | egrep -v '^[[:blank:]]*#'`; do
+ login=`echo "$line" | sed 's/:.*//'`
+ pw=`echo "$line" | sed 's/.*://'`
+ su mail -c "gotmail -u $login -p $pw --delete-messages --silent --forwarding-email $user"
+ done
+ fi
+done