python3: move filespec shell code into file
authorAlexandru Ardelean <ardeleanalex@gmail.com>
Thu, 2 Mar 2017 13:10:23 +0000 (15:10 +0200)
committerAlexandru Ardelean <ardeleanalex@gmail.com>
Thu, 9 Mar 2017 07:23:10 +0000 (09:23 +0200)
Same as for python.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
lang/python3/Makefile
lang/python3/files/python3-package-install.sh [new file with mode: 0644]
lang/python3/files/python3-package.mk

index 67a594de6be274cea4812c266f5dfa4ae659820f..1276ae546076646629e50662a1c034fd29c12955 100644 (file)
@@ -187,6 +187,7 @@ define Build/InstallDev
                ./files/python3-package.mk \
                ./files/python3-host.mk \
                ./files/python3-version.mk \
+               ./files/python3-package-install.sh \
                $(STAGING_DIR)/mk/
        $(CP) \
                $(PKG_INSTALL_DIR)/usr/include/python$(PYTHON_VERSION) \
diff --git a/lang/python3/files/python3-package-install.sh b/lang/python3/files/python3-package-install.sh
new file mode 100644 (file)
index 0000000..c3de0cc
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+process_filespec() {
+       local src_dir="$1"
+       local dst_dir="$2"
+       local filespec="$3"
+       echo "$filespec" | (
+       IFS='|'
+       while read fop fspec fperm; do
+               local fop=`echo "$fop" | tr -d ' \t\n'`
+               if [ "$fop" = "+" ]; then
+                       if [ ! -e "${src_dir}${fspec}" ]; then
+                               echo "File not found '${src_dir}${fspec}'"
+                               exit 1
+                       fi
+                       dpath=`dirname "$fspec"`
+                       if [ -z "$fperm" ]; then
+                               dperm=`stat -c "%a" ${src_dir}${dpath}`
+                       fi
+                       mkdir -p -m$dperm ${dst_dir}${dpath}
+                       echo "copying: '$fspec'"
+                       cp -fpR ${src_dir}${fspec} ${dst_dir}${dpath}/
+                       if [ -n "$fperm" ]; then
+                               chmod -R $fperm ${dst_dir}${fspec}
+                       fi
+               elif [ "$fop" = "-" ]; then
+                       echo "removing: '$fspec'"
+                       rm -fR ${dst_dir}${fspec}
+               elif [ "$fop" = "=" ]; then
+                       echo "setting permissions: '$fperm' on '$fspec'"
+                       chmod -R $fperm ${dst_dir}${fspec}
+               fi
+       done
+       )
+}
+
+process_filespec "$1" "$2" "$3"
+
index 31a5d0684411ab422c6792ff1d5d777d5a0fcb89..7881c1f046d31f2fbcac9a105c065666d3075162 100644 (file)
@@ -54,36 +54,18 @@ define Py3Package
 
   define Package/$(1)/install
        find $(PKG_INSTALL_DIR) -name "*\.pyc" -o -name "*\.pyo" -o -name "*\.exe" | xargs rm -f
-       @echo "$$$$$$$$$$(call shvar,Py3Package/$(1)/filespec)" | ( \
-               IFS='|'; \
-               while read fop fspec fperm; do \
-                 fop=`echo "$$$$$$$$fop" | tr -d ' \t\n'`; \
-                 if [ "$$$$$$$$fop" = "+" ]; then \
-                       if [ ! -e "$(PKG_INSTALL_DIR)$$$$$$$$fspec" ]; then \
-                         echo "File not found '$(PKG_INSTALL_DIR)$$$$$$$$fspec'"; \
-                         exit 1; \
-                       fi; \
-                       dpath=`dirname "$$$$$$$$fspec"`; \
-                       if [ -n "$$$$$$$$fperm" ]; then \
-                         dperm="-m$$$$$$$$fperm"; \
-                       else \
-                         dperm=`stat -c "%a" $(PKG_INSTALL_DIR)$$$$$$$$dpath`; \
-                       fi; \
-                       mkdir -p $$$$$$$$$dperm $$(1)$$$$$$$$dpath; \
-                       echo "copying: '$$$$$$$$fspec'"; \
-                       cp -fpR $(PKG_INSTALL_DIR)$$$$$$$$fspec $$(1)$$$$$$$$dpath/; \
-                       if [ -n "$$$$$$$$fperm" ]; then \
-                         chmod -R $$$$$$$$fperm $$(1)$$$$$$$$fspec; \
-                       fi; \
-                 elif [ "$$$$$$$$fop" = "-" ]; then \
-                       echo "removing: '$$$$$$$$fspec'"; \
-                       rm -fR $$(1)$$$$$$$$fspec; \
-                 elif [ "$$$$$$$$fop" = "=" ]; then \
-                       echo "setting permissions: '$$$$$$$$fperm' on '$$$$$$$$fspec'"; \
-                       chmod -R $$$$$$$$fperm $$(1)$$$$$$$$fspec; \
-                 fi; \
-               done; \
-       )
+       if [ -e files/python3-package-install.sh ] ; then \
+               $(SHELL) files/python3-package-install.sh \
+                       "$(PKG_INSTALL_DIR)" "$$(1)" \
+                       "$$$$$$$$$$(call shvar,Py3Package/$(1)/filespec)" ; \
+       elif [ -e $(STAGING_DIR)/mk/python3-package-install.sh ] ; then \
+               $(SHELL) $(STAGING_DIR)/mk/python3-package-install.sh \
+                       "$(PKG_INSTALL_DIR)" "$$(1)" \
+                       "$$$$$$$$$$(call shvar,Py3Package/$(1)/filespec)" ; \
+       else \
+               echo "No 'python3-package-install.sh' script found" ; \
+               exit 1 ; \
+       fi
        $(call Py3Package/$(1)/install,$$(1))
   endef
 endef