luci.mk: refactor install recipe
authorJo-Philipp Wich <jo@mein.io>
Wed, 28 Sep 2022 07:17:06 +0000 (09:17 +0200)
committerJo-Philipp Wich <jo@mein.io>
Fri, 30 Sep 2022 07:58:31 +0000 (09:58 +0200)
Detect the presence of directories using Make $(wildcard ...) and emit
plain install commands depending on the outcome instead of relying on
shell conditionals which impose syntax constraints on code outside of
the scope of the LuCI repo.

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

diff --git a/luci.mk b/luci.mk
index 6def683d807570502811c44508a11347822ac9b2..bb4296aaed7372c0e0f73e3cb345d96ba6a05779 100644 (file)
--- a/luci.mk
+++ b/luci.mk
@@ -184,27 +184,28 @@ else
 endif
 
 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); \
-         cp -pR $(PKG_BUILD_DIR)/htdocs/* $(1)$(HTDOCS)/; \
-         $(if $(CONFIG_LUCI_JSMIN),$(call JsMin,$(1)$(HTDOCS)/),true); \
-         $(if $(CONFIG_LUCI_CSSTIDY),$(call CssTidy,$(1)$(HTDOCS)/),true); \
-       else true; fi
-       if [ -d $(PKG_BUILD_DIR)/root ]; then \
-         $(INSTALL_DIR) $(1)/; \
-         cp -pR $(PKG_BUILD_DIR)/root/* $(1)/; \
-       else true; fi
-       if [ -d $(PKG_BUILD_DIR)/src ]; then \
-         $(call Build/Install/Default) \
-         $(CP) $(PKG_INSTALL_DIR)/* $(1)/; \
-       else true; fi
+
+ ifneq ($(wildcard ${CURDIR}/luasrc),)
+       $(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)/)
+ endif
+ ifneq ($(wildcard ${CURDIR}/htdocs),)
+       $(INSTALL_DIR) $(1)$(HTDOCS)
+       cp -pR $(PKG_BUILD_DIR)/htdocs/* $(1)$(HTDOCS)/
+       $(if $(CONFIG_LUCI_JSMIN),$(call JsMin,$(1)$(HTDOCS)/),true)
+       $(if $(CONFIG_LUCI_CSSTIDY),$(call CssTidy,$(1)$(HTDOCS)/),true)
+ endif
+ ifneq ($(wildcard ${CURDIR}/root),)
+       $(INSTALL_DIR) $(1)/
+       cp -pR $(PKG_BUILD_DIR)/root/* $(1)/
+ endif
+ ifneq ($(wildcard ${CURDIR}/src),)
+       $(call Build/Install/Default)
+       $(CP) $(PKG_INSTALL_DIR)/* $(1)/
+ endif
 endef
 
 ifndef Package/$(PKG_NAME)/postinst