summaryrefslogtreecommitdiff
path: root/localrmstaleaccounts
blob: 269bb9e66287fac117f3c0c3d16845454aba91b7 (plain)
  1. #!/bin/sh
  2. set -e
  3. exit1() (
  4. echo >&2 "ERROR: $1"
  5. exit 1
  6. )
  7. warn() (
  8. echo >&2 "WARNING: $1"
  9. )
  10. info() (
  11. echo >&2 "INFO: $1"
  12. )
  13. for user in $@; do
  14. home=$(getent passwd "$user" | cut -d: -f6)
  15. if [ -z "$home" ]; then
  16. warn "Skipping user $user: failed resolving homedir"
  17. elif [ -e "$home/.forward" ]; then
  18. warn "Skipping user $user: Email gets forwarded"
  19. elif [ ! -d "$home/Maildir" ]; then
  20. warn "Skipping user $user: Missing Maildir"
  21. elif find "$home/Maildir/new" -maxdepth 0 -type d -mtime +365 | grep -q .; then
  22. info "Removing user $user: Maildir INBOX/new untouched for a year"
  23. localrmaccount "$user"
  24. elif find "$home/Maildir/cur" -maxdepth 0 -type d -mtime +365 | grep -q .; then
  25. info "Removing user $user: Maildir INBOX/cur untouched for a year"
  26. localrmaccount "$user"
  27. elif find "$home/Maildir/new" -type f -mtime +365 | grep -q .; then
  28. info "Removing user $user: new mail in INBOX untouched for a year"
  29. localrmaccount "$user"
  30. else
  31. info "Skipping user $user"
  32. fi
  33. done