Makefile 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. SHELL := /bin/bash
  2. # TODO detect other popular distros/have a fallback
  3. .PHONY: depend
  4. depend: prereq-debian
  5. .PHONY: install
  6. install:
  7. test -d www/themes || mkdir -p www/themes
  8. test -d data/files || mkdir -p data/files
  9. test -d www/assets || mkdir -p www/assets
  10. $(RM) pod2htmd.tmp;
  11. .PHONY: install-service
  12. install-service:
  13. mkdir -p ~/.config/systemd/user
  14. cp service-files/systemd.unit ~/.config/systemd/user/tCMS.service
  15. sed -ie 's#__REPLACEME__#$(shell pwd)#g' ~/.config/systemd/user/tCMS.service
  16. systemctl --user daemon-reload
  17. systemctl --user enable tCMS
  18. systemctl --user start tCMS
  19. loginctl enable-linger $(USER)
  20. .PHONY: prereq-debian
  21. prereq-debian: prereq-debs prereq-perl prereq-frontend
  22. .PHONY: prereq-debs
  23. prereq-debs:
  24. sudo apt-get update
  25. sudo apt-get install -y sqlite3 libsqlite3-dev libdbd-sqlite3-perl cpanminus starman libxml2 curl \
  26. libtext-xslate-perl libplack-perl libconfig-tiny-perl libdatetime-format-http-perl libjson-maybexs-perl \
  27. libuuid-tiny-perl libcapture-tiny-perl libconfig-simple-perl libdbi-perl libfile-slurper-perl libfile-touch-perl \
  28. libfile-copy-recursive-perl libxml-rss-perl libmodule-install-perl libio-string-perl \
  29. libmoose-perl libmoosex-types-datetime-perl libxml-libxml-perl liblist-moreutils-perl libclone-perl
  30. .PHONY: prereq-perl
  31. prereq-perl:
  32. sudo cpanm -n --installdeps .
  33. .PHONY: prereq-frontend
  34. prereq-frontend:
  35. mkdir -p www/scripts; pushd www/scripts && curl -L --remote-name-all \
  36. "https://github.com/woody180/vanilla-javascript-emoji-picker/raw/master/fgEmojiPicker.js" \
  37. "https://github.com/woody180/vanilla-javascript-emoji-picker/raw/master/full-emoji-list.json" \
  38. "https://raw.githubusercontent.com/highlightjs/cdn-release/main/build/highlight.min.js"; popd
  39. mkdir -p www/styles; cd www/styles && curl -L --remote-name-all \
  40. "https://raw.githubusercontent.com/highlightjs/cdn-release/main/build/styles/obsidian.min.css"
  41. .PHONY: reset
  42. reset: reset-remove install
  43. .PHONY: reset-remove
  44. reset-remove:
  45. rm -rf data; /bin/true
  46. rm -rf www/themes; /bin/true
  47. rm -rf www/assets; /bin/true
  48. rm config/auth.db; /bin/true
  49. rm config/main.cfg; /bin/true
  50. rm config/has_users; /bin/true
  51. rm config/setup; /bin/true