mirror of
https://git.openwrt.org/feed/packages.git
synced 2024-06-14 11:23:57 +02:00
3cdca38dce
This moves functionality from python-package-install.sh into python3-package.mk, so that they can be reused separate from filespec processing. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
46 lines
1002 B
Bash
46 lines
1002 B
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
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"
|
|
filespec="$3"
|
|
|
|
process_filespec "$src_dir" "$dst_dir" "$filespec" || {
|
|
echo "process filespec error-ed"
|
|
exit 1
|
|
}
|