From 06c91a7ed84b2467420adbd208132e1ef63f4d47 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Thu, 2 Mar 2017 14:14:02 +0200 Subject: [PATCH] python: move filespec shell code into file Cleanup. And preparation for adding a bit more functionality. Signed-off-by: Alexandru Ardelean --- lang/python/Makefile | 1 + lang/python/files/python-package-install.sh | 38 +++++++++++++++++++ lang/python/files/python-package.mk | 42 ++++++--------------- 3 files changed, 51 insertions(+), 30 deletions(-) create mode 100644 lang/python/files/python-package-install.sh diff --git a/lang/python/Makefile b/lang/python/Makefile index 42b10d55e..b6846f52d 100644 --- a/lang/python/Makefile +++ b/lang/python/Makefile @@ -193,6 +193,7 @@ define Build/InstallDev ./files/python-package.mk \ ./files/python-host.mk \ ./files/python-version.mk \ + ./files/python-package-install.sh \ $(STAGING_DIR)/mk/ $(CP) \ $(PKG_INSTALL_DIR)/usr/include/python$(PYTHON_VERSION) \ diff --git a/lang/python/files/python-package-install.sh b/lang/python/files/python-package-install.sh new file mode 100644 index 000000000..c3de0cc95 --- /dev/null +++ b/lang/python/files/python-package-install.sh @@ -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" + diff --git a/lang/python/files/python-package.mk b/lang/python/files/python-package.mk index 31a308fa0..732dbf05d 100644 --- a/lang/python/files/python-package.mk +++ b/lang/python/files/python-package.mk @@ -54,36 +54,18 @@ define PyPackage define Package/$(1)/install find $(PKG_INSTALL_DIR) -name "*\.pyc" -o -name "*\.pyo" -o -name "*\.exe" | xargs rm -f - @echo "$$$$$$$$$$(call shvar,PyPackage/$(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/python-package-install.sh ] ; then \ + $(SHELL) files/python-package-install.sh \ + "$(PKG_INSTALL_DIR)" "$$(1)" \ + "$$$$$$$$$$(call shvar,PyPackage/$(1)/filespec)" ; \ + elif [ -e $(STAGING_DIR)/mk/python-package-install.sh ] ; then \ + $(SHELL) $(STAGING_DIR)/mk/python-package-install.sh \ + "$(PKG_INSTALL_DIR)" "$$(1)" \ + "$$$$$$$$$$(call shvar,PyPackage/$(1)/filespec)" ; \ + else \ + echo "No 'python-package-install.sh' script found" ; \ + exit 1 ; \ + fi $(call PyPackage/$(1)/install,$$(1)) endef endef