Makefile 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # vim: set sw=2 ts=2 sts=2 et tw=80 fmr={{{,}}} fdl=0 fdm=marker:
  2. # pgs-cli build.
  3. .PHONY: help dist
  4. # Auto-Documenting Section. Displays a target list with `##` descriptions.
  5. help:
  6. @grep -E '^[a-zA-Z_-]+:.*## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "* %-10s %s\n", $$1, $$2}'
  7. dist: ## Create a distribution for live usage.
  8. # --- Create Folders ---
  9. @rm -rf dist/*
  10. @mkdir -p dist/css dist/js dist/tags
  11. # --- Combine CSS ---
  12. @for file in $$(cat css/app.css | sed "$(CSS_FILES)"); do \
  13. cat css/$$file >> dist/css/app.css; \
  14. done
  15. # --- Combine Javascript ---
  16. @for file in $$(grep "$(JS_TAGS)" index.html | sed "$(JS_FILES)"); do \
  17. cat $$file >> dist/js/app.js; \
  18. done
  19. # --- Combine Riot Tags ---
  20. @for file in $$(grep "$(RIOT_TAGS)" index.html | sed "$(RIOT_FILES)"); do \
  21. cat $$file >> dist/tags/app.tag; \
  22. done
  23. # --- Modify Index Page ---
  24. @sed -e "/$(JS_TAGS)/D" -e "s|$(APPJS_PH)|$(APPJS_TAG)|" \
  25. -e "/$(RIOT_TAGS)/D" -e "s|$(APPTAG_PH)|$(APPTAG_TAG)|" \
  26. index.html > dist/index.html
  27. @echo "All Done!"
  28. CSS_FILES = s|@import.*[\'\"]\(.*\)[\'\"].*|\1|
  29. JS_TAGS = <script .*src=[\'\"].*\.js[\'\"]
  30. JS_FILES = s|.*src=[\'\"]\(.*\.js\)[\'\"].*|\1|
  31. RIOT_TAGS = <script .*src=[\'\"].*\.tag[\'\"]
  32. RIOT_FILES = s|.*src=[\'\"]\(.*\.tag\)[\'\"].*|\1|
  33. APPJS_PH = <!-- appjsplaceholder -->
  34. APPJS_TAG = <script type='text/javascript' src='js/app.js'></script>
  35. APPTAG_PH = <!-- apptagplaceholder -->
  36. APPTAG_TAG = <script type='riot/tag' src='tags/app.tag'></script>
  37. update: ## Get latest js/css library versions.
  38. # -- Update Riot --
  39. @curl https://cdn.jsdelivr.net/npm/riot@3.13/riot+compiler.min.js \
  40. -o js/vendor/riot+compiler.min.js -#
  41. # -- Update Skeleton --
  42. @curl https://raw.githubusercontent.com/skeleton-framework/skeleton-framework/master/dist/skeleton.min.css \
  43. -o css/vendor/skeleton.min.css -#