Added a new helper that replaces wrong shebang paths.

Inspired by replace-interpreter.mk from pkgsrc.

--HG--
extra : convert_revision : 7e7096b97c156ea861d3d782f2af532d1e73f5fd
This commit is contained in:
Juan RP 2008-10-14 18:24:53 +02:00
parent f8fb7d162c
commit 15a0e2c005

View file

@ -0,0 +1,47 @@
#
# This helper replaces shebang paths pointing to the correct ones
# as used by xbps. Multiple languages are supported:
#
# - GNU Bash
# - Perl
# - Python
#
bash_regexp=".*sh"
perl_regexp=".*perl[^[:space:]]*"
python_regexp=".*python[^[:space:]]*"
replace_interpreter()
{
local lang="$1"
local file="$2"
local trsb=
local orsb=
[ -z $lang -o -z $file ] && return 1
case $lang in
bash)
orsb=$bash_regexp
trpath="$XBPS_MASTERDIR/bin/bash"
;;
perl)
orsb=$perl_regexp
trpath="$XBPS_MASTERDIR/bin/perl"
;;
python)
orsb=$python_regexp
trpath="$XBPS_MASTERDIR/bin/python"
;;
*)
;;
esac
if [ -f $file ]; then
$sed_cmd -e '1s|^#![[:space:]]*\$orsb|#!\$trpath|' \
$file > $file.in && $mv_cmd $file.in $file && \
echo "=> Transformed $lang script: $file."
else
echo "=> Ignoring unexisten $lang script: $file."
fi
}