common: added a helpers directory with common shell helpers.
This commit is contained in:
parent
0abdc0c09e
commit
eba93e2adb
2 changed files with 66 additions and 0 deletions
common/helpers
25
common/helpers/README
Normal file
25
common/helpers/README
Normal 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 ...
|
||||||
|
}
|
||||||
|
...
|
41
common/helpers/replace-interpreter.sh
Normal file
41
common/helpers/replace-interpreter.sh
Normal 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
|
||||||
|
}
|
Loading…
Reference in a new issue