lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

python3-package-install.sh (1848B)


      1 #!/bin/sh
      2 
      3 process_filespec() {
      4 	local src_dir="$1"
      5 	local dst_dir="$2"
      6 	local filespec="$3"
      7 	echo "$filespec" | (
      8 	IFS='|'
      9 	while read fop fspec fperm; do
     10 		local fop=`echo "$fop" | tr -d ' \t\n'`
     11 		if [ "$fop" = "+" ]; then
     12 			if [ ! -e "${src_dir}${fspec}" ]; then
     13 				echo "File not found '${src_dir}${fspec}'"
     14 				exit 1
     15 			fi
     16 			dpath=`dirname "$fspec"`
     17 			if [ -z "$fperm" ]; then
     18 				dperm=`stat -c "%a" ${src_dir}${dpath}`
     19 			fi
     20 			mkdir -p -m$dperm ${dst_dir}${dpath}
     21 			echo "copying: '$fspec'"
     22 			cp -fpR ${src_dir}${fspec} ${dst_dir}${dpath}/
     23 			if [ -n "$fperm" ]; then
     24 				chmod -R $fperm ${dst_dir}${fspec}
     25 			fi
     26 		elif [ "$fop" = "-" ]; then
     27 			echo "removing: '$fspec'"
     28 			rm -fR ${dst_dir}${fspec}
     29 		elif [ "$fop" = "=" ]; then
     30 			echo "setting permissions: '$fperm' on '$fspec'"
     31 			chmod -R $fperm ${dst_dir}${fspec}
     32 		fi
     33 	done
     34 	)
     35 }
     36 
     37 src_dir="$1"
     38 dst_dir="$2"
     39 python="$3"
     40 mode="$4"
     41 filespec="$5"
     42 
     43 process_filespec "$src_dir" "$dst_dir" "$filespec" || {
     44 	echo "process filespec error-ed"
     45 	exit 1
     46 }
     47 
     48 if [ "$mode" == "sources" ] ; then
     49 	# Copy only python source files
     50 	find $dst_dir -not -name "*\.py" | xargs rm -f
     51 	# Delete empty folders (if the case)
     52 	find $dst_dir/usr -type d | xargs rmdir &> /dev/null
     53 	rmdir $dst_dir/usr &> /dev/null
     54 	exit 0
     55 fi
     56 
     57 # XXX [So that you won't goof as I did]
     58 # Note: Yes, I tried to use the -O & -OO flags here.
     59 #       However the generated byte-codes were not portable.
     60 #       So, we just stuck to un-optimized byte-codes,
     61 #       which is still way better/faster than running
     62 #       Python sources all the time.
     63 $python -m compileall -b -d '/' $dst_dir || {
     64 	echo "python -m compileall err-ed"
     65 	exit 1
     66 }
     67 # Delete source files and pyc [ un-optimized bytecode files ]
     68 # We may want to make this optimization thing configurable later, but not sure atm
     69 find $dst_dir -name "*\.py" | xargs rm -f