void-packages/templates/helpers/replace-interpreter.sh
Juan RP 23fa45a18b Reorganize the tree for easier and better handling.
- Template helpers have been moved to templates/helpers.
- Documentation to docs/.
- Common scripts have been moved to utils/sh.
- Fixed install-destdir when executed via chroot.
- Added a build-pkg target that builds a binary package.
  The package must be installed into destdir before using.
- Misc tweaks and fixes.

--HG--
extra : convert_revision : 0896e8f24bb7592116aaf77ae9c776033818a3d8
2008-12-13 03:01:24 +01:00

46 lines
803 B
Bash

#
# 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="/bin/bash"
;;
perl)
orsb=$perl_regexp
trpath="/usr/bin/perl"
;;
python)
orsb=$python_regexp
trpath="/usr/bin/python"
;;
*)
;;
esac
if [ -f $file ]; then
sed -i -e "1s|^#![[:space:]]*${orsb}|#!${trpath}|" $file && \
msg_normal "Transformed $lang script: ${file##$wrksrc}."
else
msg_warn "Ignoring unexistent $lang script: ${file##$wrksrc}."
fi
}