common: added a helpers directory with common shell helpers.

This commit is contained in:
Juan RP 2014-01-28 12:10:04 +01:00
parent 0abdc0c09e
commit eba93e2adb
2 changed files with 66 additions and 0 deletions

25
common/helpers/README Normal file
View File

@ -0,0 +1,25 @@
SHELL HELPERS
=============
This directory contains shell files that are read by xbps-src and can be used at any
phase when building source packages. Only files with the `.sh' extension will be read.
A shell helper must provide its own function for use in the source packages.
The following examples illustrates a fake helper named `myhelper.sh' that provides
the `myhelper_func' function:
myhelper.sh:
...
myhelper_func() {
...
}
...
You can then use this helper in a source package like this:
srcpkgs/foo/template:
...
do_install() {
myhelper_func ...
}
...

View File

@ -0,0 +1,41 @@
# 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" file="$2" trsb 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}.\n"
else
msg_warn "Ignoring unexistent $lang script: ${file##$wrksrc}.\n"
fi
}