Multiline shebang: Difference between revisions

Content added Content deleted
Line 170: Line 170:
=={{header|Groovy}}==
=={{header|Groovy}}==
<lang groovy>#!/bin/bash
<lang groovy>#!/bin/bash
function trampoline() {
local interpreter="$1"
shift

umask 077
tmpdir="$(mktemp -d -t $$.XXXXXXXXXXXXXXXX)"
tmpfile="${tmpdir}/$(basename $0)"

sed -e '1,/^!#$/d' "$0" >"${tmpfile}" && "${interpreter}" "${tmpfile}" "${@:1}"
status=${PIPESTATUS[0]}

rm -rf "${tmpdir}"

exit ${status}
}

if [ -z "${GROOVY_HOME}" ]
if [ -z "${GROOVY_HOME}" ]
then
then
Line 192: Line 176:
fi
fi


trampoline "${GROOVY_HOME}/bin/groovy" "$@"
"${GROOVY_HOME}/bin/groovy" -e "$(sed -e '1,/^!#$/d' $0)" "${@:1}"
exit
!#
!#
println 'aoeu'
println 'aoeu'