luci.mk: add simple cache buster
authorJo-Philipp Wich <jo@mein.io>
Tue, 1 Nov 2016 15:47:31 +0000 (16:47 +0100)
committerJo-Philipp Wich <jo@mein.io>
Tue, 1 Nov 2016 15:50:50 +0000 (16:50 +0100)
Append a ?v=version string to any media or resource URL that has a .js or .css
extension.

Also substitute placeholders in the form <%# xxxPKG_VERSION %> where
xxx is replaced verbatim and PKG_VERSION with the actual version, e.g.
<%# ?x=PKG_VERSION %> will result in "?x=git-16.237.30043-f885853".

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
luci.mk

diff --git a/luci.mk b/luci.mk
index 84d1512..2235cc5 100644 (file)
--- a/luci.mk
+++ b/luci.mk
@@ -155,12 +155,21 @@ define SrcDiet
        done
 endef
 
+define SubstituteVersion
+       $(FIND) $(1) -type f -name '*.htm' | while read src; do \
+               $(SED) 's/<%# *\([^ ]*\)PKG_VERSION *%>/\1$(PKG_VERSION)/g' \
+                   -e 's/"\(<%= *\(media\|resource\) *%>[^"]*\.\(js\|css\)\)"/"\1?v=$(PKG_VERSION)"/g' \
+                       "$$$$src"; \
+       done
+endef
+
 define Package/$(PKG_NAME)/install
        if [ -d $(PKG_BUILD_DIR)/luasrc ]; then \
          $(INSTALL_DIR) $(1)$(LUCI_LIBRARYDIR); \
          cp -pR $(PKG_BUILD_DIR)/luasrc/* $(1)$(LUCI_LIBRARYDIR)/; \
          $(FIND) $(1)$(LUCI_LIBRARYDIR)/ -type f -name '*.luadoc' | $(XARGS) rm; \
          $(if $(CONFIG_LUCI_SRCDIET),$(call SrcDiet,$(1)$(LUCI_LIBRARYDIR)/),true); \
+         $(call SubstituteVersion,$(1)$(LUCI_LIBRARYDIR)/); \
        else true; fi
        if [ -d $(PKG_BUILD_DIR)/htdocs ]; then \
          $(INSTALL_DIR) $(1)$(HTDOCS); \