summaryrefslogtreecommitdiff
path: root/lang/python3/files/python3-package-install.sh
diff options
context:
space:
mode:
authorAlexandru Ardelean <ardeleanalex@gmail.com>2017-03-02 15:10:23 +0200
committerAlexandru Ardelean <ardeleanalex@gmail.com>2017-03-09 09:23:10 +0200
commit5d502e85303462ad9c8e437d910172884685e6b7 (patch)
tree4b9e16cf72291e1f69b2888da152b520ca42cb62 /lang/python3/files/python3-package-install.sh
parent06c91a7ed84b2467420adbd208132e1ef63f4d47 (diff)
python3: move filespec shell code into file
Same as for python. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Diffstat (limited to 'lang/python3/files/python3-package-install.sh')
-rw-r--r--lang/python3/files/python3-package-install.sh38
1 files changed, 38 insertions, 0 deletions
diff --git a/lang/python3/files/python3-package-install.sh b/lang/python3/files/python3-package-install.sh
new file mode 100644
index 000000000..c3de0cc95
--- /dev/null
+++ b/lang/python3/files/python3-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"
+