summaryrefslogtreecommitdiff
path: root/localrmstaleaccounts
blob: b185cfc76ba21833f95a84a6ef7d62c6aac24fbc (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. remove_account() (
  14. localrmaccount "$1"
  15. )
  16. for user in $@; do
  17. home=$(getent passwd "$user" | cut -d: -f6)
  18. if [ -z "$home" ]; then
  19. warn "Skipping user $user: failed resolving homedir"
  20. elif [ -e "$home/.forward" ]; then
  21. warn "Skipping user $user: Email gets forwarded"
  22. elif [ ! -d "$home/Maildir" ]; then
  23. warn "Skipping user $user: Missing Maildir"
  24. elif find "$home/Maildir/new" -maxdepth 0 -type d -mtime +365 | grep -q .; then
  25. info "Removing user $user: Maildir INBOX/new untouched for a year"
  26. remove_account "$user"
  27. elif find "$home/Maildir/cur" -maxdepth 0 -type d -mtime +365 | grep -q .; then
  28. info "Removing user $user: Maildir INBOX/cur untouched for a year"
  29. remove_account "$user"
  30. elif find "$home/Maildir/new" -type f -mtime +365 | grep -q .; then
  31. info "Removing user $user: new mail in INBOX untouched for a year"
  32. remove_account "$user"
  33. else
  34. info "Skipping user $user"
  35. fi
  36. done