common/hooks: fix python shebang rewrite for multi-versioned packages
This commit is contained in:
parent
5914ed56f1
commit
6606995831
1 changed files with 16 additions and 8 deletions
36
common/hooks/pre-pkg/03-rewrite-python-shebang.sh
Normal file
36
common/hooks/pre-pkg/03-rewrite-python-shebang.sh
Normal file
|
@ -0,0 +1,36 @@
|
|||
# This hook executes the following tasks:
|
||||
# - rewrites python shebangs with the corresponding python version
|
||||
|
||||
hook() {
|
||||
local pyver= shebang= warn=
|
||||
|
||||
case $pkgname in
|
||||
python-*)
|
||||
pyver=2.7;;
|
||||
python3.4-*)
|
||||
pyver=3.4;;
|
||||
*)
|
||||
for i in $python_versions; do
|
||||
if [ "$pyver" ]; then
|
||||
warn=1
|
||||
break;
|
||||
fi
|
||||
pyver=$i
|
||||
done
|
||||
: ${pyver:=2.7}
|
||||
;;
|
||||
esac
|
||||
|
||||
shebang="#!/usr/bin/python$pyver"
|
||||
find ${PKGDESTDIR} -type f -print0 | \
|
||||
xargs -0 grep -H -b -m 1 "^#!.*\([[:space:]]\|/\)python\([[:space:]]\|$\)" -- | while IFS=: read -r f off _; do
|
||||
[ "$off" -eq 0 ] || continue
|
||||
if [ "$warn" ]; then
|
||||
msg_warn "$pkgname: multiple python versions defined!"
|
||||
msg_warn "$pkgname: using $pyver for shebang"
|
||||
warn=
|
||||
fi
|
||||
echo " Unversioned shebang replaced by '$shebang': ${f#$PKGDESTDIR}"
|
||||
sed -i "1s@.*python@${shebang}@" -- "$f"
|
||||
done
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue