Browse Source

python: move filespec shell code into file

Cleanup.
And preparation for adding a bit more functionality.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
lilik-openwrt-22.03
Alexandru Ardelean 7 years ago
parent
commit
06c91a7ed8
3 changed files with 51 additions and 30 deletions
  1. +1
    -0
      lang/python/Makefile
  2. +38
    -0
      lang/python/files/python-package-install.sh
  3. +12
    -30
      lang/python/files/python-package.mk

+ 1
- 0
lang/python/Makefile View File

@ -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) \


+ 38
- 0
lang/python/files/python-package-install.sh 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"

+ 12
- 30
lang/python/files/python-package.mk View File

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


Loading…
Cancel
Save