summaryrefslogtreecommitdiff
path: root/localrmstaleaccounts
blob: b6e9a05d714490ac128b1612288ac3430805bffa (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