Makefile 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. # lcmail-wizard - Setup procmail filters and lcmail-wizard.py script
  2. # See README.md for more information
  3. FORWARD = ~/.forward
  4. HOSTNAME = $(shell hostname)
  5. PMAILRC = ~/.procmailrc
  6. PMAILDIR = ~/.procmail
  7. PWD = $(shell pwd)
  8. init: filter-rules.rc lcmail-wizard.yml lcmail-wizard.cron
  9. @echo [INFO] Customize, if you want:
  10. @echo " * filter-rules.rc -> Mail filter rules"
  11. @echo " * lcmail-wizard.yml -> Mail auto trash days"
  12. @echo " * lcmail-wizard.cron -> Mail auto trash scheduler"
  13. filter-rules.rc:
  14. @echo [INFO] Create $@ from filter-rules.def.rc
  15. @cp filter-rules.def.rc $@
  16. lcmail-wizard.yml:
  17. @echo [INFO] Create $@ from lcmail-wizard.def.yml
  18. @cp lcmail-wizard.def.yml $@
  19. lcmail-wizard.cron:
  20. @echo [INFO] Create $@ from lcmail-wizard.def.cron
  21. @head -n2 lcmail-wizard.def.cron > lcmail-wizard.cron
  22. @printf '\nDEST="%s"\n\n' ${PWD} >> lcmail-wizard.cron
  23. @tail -n2 lcmail-wizard.def.cron >> lcmail-wizard.cron
  24. install: init
  25. @echo [INFO] Create .maildir structure using lcmail-wizard.py
  26. @./lcmail-wizard.py --create
  27. @echo [INFO] Backup ${PMAILRC} file, if present
  28. @if [ -f ${PMAILRC} ]; then mv -f ${PMAILRC} ${PMAILRC}.orig 2> /dev/null; fi
  29. @echo [INFO] Backup ${PMAILDIR} file, if present
  30. @if [ -d ${PMAILDIR} ]; then mv -f ${PMAILDIR} ${PMAILDIR}.orig 2> /dev/null; fi
  31. @echo [INFO] Create ${PMAILDIR} structure
  32. @mkdir -p ${PMAILDIR}
  33. @mkdir -p ${PMAILDIR}/log
  34. @echo [INFO] Copy procmail configuration files
  35. @cp -i .procmailrc ${PMAILRC}
  36. @cp -i filter-rules.rc ${PMAILDIR}/
  37. @echo [INFO] Backup ${FORWARD} file
  38. @cp -ai ${FORWARD} ${FORWARD}.orig
  39. @echo [INFO] Enable procmail, rewriting ${FORWARD}
  40. @cp -i .forward ${FORWARD}
  41. @chmod 0644 ${FORWARD}
  42. @echo [INFO] Schedule lcmail-wizard.py using crontab on ${HOSTNAME}
  43. @crontab lcmail-wizard.cron
  44. uninstall:
  45. @echo [INFO] Restore original ${FORWARD}
  46. @cp -af ${FORWARD}.orig ${FORWARD}
  47. @rm -f ${FORWARD}.orig
  48. @echo [INFO] Remove procmail conf files
  49. @rm -rf ${PMAILDIR}
  50. @rm -f ${PMAILRC}
  51. @echo [INFO] Restore original ${PMAILRC}, if present
  52. @if [ -f ${PMAILRC}.orig ]; then mv -f ${PMAILRC}.orig ${PMAILRC} 2> /dev/null; fi
  53. @echo [INFO] Restore original ${PMAILDIR}, if present
  54. @if [ -d ${PMAILDIR}.orig ]; then mv -f ${PMAILDIR}.orig ${PMAILDIR} 2> /dev/null; fi
  55. @echo [INFO] Disable lcmail-wizard.py schedule
  56. @crontab -r
  57. @echo [WARN] Structure inside ~/.maildir not restored,
  58. @echo added dirs must be manually remove
  59. clean:
  60. @echo [INFO] Remove custom config files
  61. @rm -i filter-rules.rc lcmail-wizard.yml lcmail-wizard.cron
  62. .PHONY: init install uninstall clean