aboutsummaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorAlexandru Ardelean <ardeleanalex@gmail.com>2017-03-02 14:14:02 +0200
committerAlexandru Ardelean <ardeleanalex@gmail.com>2017-03-09 09:23:10 +0200
commit06c91a7ed84b2467420adbd208132e1ef63f4d47 (patch)
treedfcac37285cd99aebe5b27b210d4ef417459ac6f /lang
parent17da9886456369878560953ffb773292f6a2a00a (diff)
python: move filespec shell code into file
Cleanup. And preparation for adding a bit more functionality. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Diffstat (limited to 'lang')
-rw-r--r--lang/python/Makefile1
-rw-r--r--lang/python/files/python-package-install.sh38
-rw-r--r--lang/python/files/python-package.mk42
3 files changed, 51 insertions, 30 deletions
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