#!/bin/sh
export fname dirname
die() {
printf '%s\n' "$*"
exit 1
}
fname=./etc/autofs/auto.smb
dirname=./etc/autofs
if ! test -f "$fname"; then
if test -e "$fname"; then
die "already present but not a file:" "$fname"
fi
fi
content='#!/bin/bash
# This file must be executable to work! chmod 755!
key="$1"
opts="-fstype=cifs"
for P in /bin /sbin /usr/bin /usr/sbin
do
if [ -x $P/smbclient ]
then
SMBCLIENT=$P/smbclient
break
fi
done
[ -x $SMBCLIENT ] || exit 1
$SMBCLIENT -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'\''|'\'' -- '\''
BEGIN { ORS=""; first=1 }
/Disk/ {
if (first)
print opts; first=0
dir = $2
loc = $2
# Enclose mount dir and location in quotes
# Double quote "$" in location as it is special
gsub(/\$$/, "\\$", loc);
gsub(/\&/,"\\\\&",loc)
print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\""
}
END { if (!first) print "\n"; else exit 1 }
'\''
'
printf >"$fname" '%s\n' "$content" || exit $?
chown 0:0 "$fname" || exit $?
chmod 755 "$fname" || exit $?