aboutsummaryrefslogtreecommitdiff
path: root/bin/shb.sh
blob: 7d31876d646fc44c2ab655311339687da46a34a7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Use PATH to build a shebang for a script given on stdin
self=shb

# Need at least two arguments
if [ "$#" -lt 1 ] ; then
    printf >&2 '%s: Need interpreter command\n' "$self"
    exit 1
fi

# First argument is the name of the interpreter
intn=$1
shift

# Try and find the path to the interpreter command, bail out if we can't
if ! intp=$(command -v "$intn" 2>/dev/null) ; then
    printf >&2 '%s: %s: command not found\n' "$self" "$intn"
    exit 1
fi

# Set the positional parameters to the path and any remaining arguments, and
# squash them together for the shebang line
set -- "$intp" "$@"
printf '#!%s\n' "$*"

# Emit the rest of the input
cat