diff --git a/helper-templates/replace-interpreter.sh b/helper-templates/replace-interpreter.sh new file mode 100644 index 0000000000..662f695d50 --- /dev/null +++ b/helper-templates/replace-interpreter.sh @@ -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 +}