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:
parent
f8fb7d162c
commit
15a0e2c005
1 changed files with 47 additions and 0 deletions
47
helper-templates/replace-interpreter.sh
Normal file
47
helper-templates/replace-interpreter.sh
Normal 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
|
||||
}
|
Loading…
Reference in a new issue