1
0
mirror of https://git.openwrt.org/feed/packages.git synced 2024-06-15 20:03:57 +02:00
openwrt-packages/lang/python/python/files/python-package-install.sh
Alexandru Ardelean 68312f49c0 python packages: move all things python under lang/python
I admit this may be be a bit aggressive, but the lang
folder is getting cluttered/filled up with Python, PHP, Perl,
Ruby, etc. packages.

Makes sense to try to group them into per-lang folders.

I took the Pythons.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-05-17 16:51:14 +03:00

71 lines
1.8 KiB
Bash

#!/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
)
}
src_dir="$1"
dst_dir="$2"
python="$3"
mode="$4"
filespec="$5"
process_filespec "$src_dir" "$dst_dir" "$filespec" || {
echo "process filespec error-ed"
exit 1
}
if [ "$mode" == "sources" ] ; then
# Copy only python source files
find $dst_dir -not -name "*\.py" | xargs rm -f
# Delete empty folders (if the case)
find $dst_dir/usr -type d | xargs rmdir &> /dev/null
rmdir $dst_dir/usr &> /dev/null
exit 0
fi
# XXX [So that you won't goof as I did]
# Note: Yes, I tried to use the -O & -OO flags here.
# However the generated byte-codes were not portable.
# So, we just stuck to un-optimized byte-codes,
# which is still way better/faster than running
# Python sources all the time.
$python -m compileall -d '/' $dst_dir || {
echo "python -m compileall err-ed"
exit 1
}
# Delete source files and pyc [ un-optimized bytecode files ]
# We may want to make this optimization thing configurable later, but not sure atm
find $dst_dir -name "*\.py" | xargs rm -f