My dotfiles. Period.

imapdomo 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/bin/bash
  2. . "$(shellfu-get path)" || exit 3
  3. shellfu import pretty
  4. usage() {
  5. mkusage "newmail" \
  6. "rewind" \
  7. "cleanup" \
  8. -- "newmail - check for and file new mail" \
  9. "rewind - re-add messages from FILTER_FAIL back" \
  10. " to FILTER_QUEUE" \
  11. "cleanup - delete or archive old messages"
  12. }
  13. mkcmd() {
  14. #
  15. # Compose imapfilter command
  16. #
  17. echo -n "IMAPDOMO_ACTION=$Action"
  18. echo -n " IMAPFILTER_HOME=$CfgDir"
  19. echo -n " imapfilter"
  20. if $Debug
  21. then
  22. mkdir -p "$LogDir"
  23. echo -n " -d $LogDir/debug.log"
  24. echo -n " -v"
  25. fi
  26. echo -n " -c $CfgDir/main.lua"
  27. }
  28. main() {
  29. local Action # what to do
  30. local Debug # true if debugging
  31. local cmd # imapfilter command
  32. local CfgDir # config directory
  33. local LogDir # directory to store logs
  34. local CdTo # change dir to this before running imapfilter
  35. CfgDir="$HOME/.imapdomo"
  36. LogDir="$HOME/.cache/imapdomo/logs"
  37. Debug=false
  38. while true; do case $1 in
  39. -c) CdTo="$2"; shift 2 || usage ;;
  40. -d) Debug=true; SHELLFU_DEBUG=true; shift ;;
  41. -*) usage ;;
  42. *) break ;;
  43. esac done
  44. Action="$1"; shift
  45. grep -qw "$Action" <<< "newmail|rewind|cleanup" || usage
  46. cmd=$(mkcmd)
  47. debug -v cmd
  48. bash -n <<<"$cmd" || die
  49. if test -n "$CdTo";
  50. then
  51. cd "$CdTo" || die
  52. fi
  53. eval "$cmd"
  54. }
  55. main "$@"