python: move filespec shell code into file

Cleanup.
And preparation for adding a bit more functionality.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
This commit is contained in:
Alexandru Ardelean 2017-03-02 14:14:02 +02:00
parent 17da988645
commit 06c91a7ed8
3 changed files with 51 additions and 30 deletions

View file

@ -193,6 +193,7 @@ define Build/InstallDev
./files/python-package.mk \ ./files/python-package.mk \
./files/python-host.mk \ ./files/python-host.mk \
./files/python-version.mk \ ./files/python-version.mk \
./files/python-package-install.sh \
$(STAGING_DIR)/mk/ $(STAGING_DIR)/mk/
$(CP) \ $(CP) \
$(PKG_INSTALL_DIR)/usr/include/python$(PYTHON_VERSION) \ $(PKG_INSTALL_DIR)/usr/include/python$(PYTHON_VERSION) \

View file

@ -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"

View file

@ -54,36 +54,18 @@ define PyPackage
define Package/$(1)/install define Package/$(1)/install
find $(PKG_INSTALL_DIR) -name "*\.pyc" -o -name "*\.pyo" -o -name "*\.exe" | xargs rm -f find $(PKG_INSTALL_DIR) -name "*\.pyc" -o -name "*\.pyo" -o -name "*\.exe" | xargs rm -f
@echo "$$$$$$$$$$(call shvar,PyPackage/$(1)/filespec)" | ( \ if [ -e files/python-package-install.sh ] ; then \
IFS='|'; \ $(SHELL) files/python-package-install.sh \
while read fop fspec fperm; do \ "$(PKG_INSTALL_DIR)" "$$(1)" \
fop=`echo "$$$$$$$$fop" | tr -d ' \t\n'`; \ "$$$$$$$$$$(call shvar,PyPackage/$(1)/filespec)" ; \
if [ "$$$$$$$$fop" = "+" ]; then \ elif [ -e $(STAGING_DIR)/mk/python-package-install.sh ] ; then \
if [ ! -e "$(PKG_INSTALL_DIR)$$$$$$$$fspec" ]; then \ $(SHELL) $(STAGING_DIR)/mk/python-package-install.sh \
echo "File not found '$(PKG_INSTALL_DIR)$$$$$$$$fspec'"; \ "$(PKG_INSTALL_DIR)" "$$(1)" \
exit 1; \ "$$$$$$$$$$(call shvar,PyPackage/$(1)/filespec)" ; \
fi; \ else \
dpath=`dirname "$$$$$$$$fspec"`; \ echo "No 'python-package-install.sh' script found" ; \
if [ -n "$$$$$$$$fperm" ]; then \ exit 1 ; \
dperm="-m$$$$$$$$fperm"; \ fi
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; \
)
$(call PyPackage/$(1)/install,$$(1)) $(call PyPackage/$(1)/install,$$(1))
endef endef
endef endef