if [ "$type" = ufs ]; then
for ufstype in ufs2 44bsd; do
if mount -o ro,ufstype=$ufstype -t "$type" "$partition" "$tmpmnt" 2>/dev/null; then
mounted=1
break
fi
done
else
if mount -o ro -t "$type" "$partition" "$tmpmnt" 2>/dev/null; then
mounted=1
fi
fi
50linux-distro:
known_distro=(
90bsd-distro:
if [ "$type" = ufs ]; then
pattern_disk='([[:alpha:][:punct:]]+)[[:digit:]]+'
pattern_system="$partition[[:blank:]]+\*[[:blank:]]+.+[[:blank:]]+(.+)BSD"
system=
if [[ "$partition" =~ $pattern_disk ]]; then
disk="${BASH_REMATCH[1]}"
while read line; do
if [[ "$line" =~ $pattern_system ]]; then system="${BASH_REMATCH[1]}BSD"
break
fi
done< <( fdisk -l $disk )
fi
if [ ! -z $system ]; then
if [ -f $dir/etc/motd ]; then
pattern_version=
case $system in
FreeBSD | NetBSD | OpenBSD) pattern_version="$system[[:blank:]]+([[:graph:]]+)[[:blank:]]+(\([[:graph:]]+\))" ;;
esac
title="$system"
if [ ! -z $pattern_version ]; then
while read line; do
if [[ "$line" =~ $pattern_version ]]; then title="$system ${BASH_REMATCH[1]} ${BASH_REMATCH[2]}"
break
fi
done< <( cat $dir/etc/motd )
fi
fi
I did it.
50mouted-tests:
if [ "$type" = ufs ]; then
for ufstype in ufs2 44bsd; do
if mount -o ro,ufstype=$ufstype -t "$type" "$partition" "$tmpmnt" 2>/dev/null; then
mounted=1
break
fi
done
else
if mount -o ro -t "$type" "$partition" "$tmpmnt" 2>/dev/null; then
mounted=1
fi
fi
50linux-distro:
known_distro=(
90bsd-distro:
if [ "$type" = ufs ]; then disk='( [[:alpha: ][:punct: ]]+)[[: digit:] ]+' system= "$partition[ [:blank: ]]+\*[[ :blank: ]]+.+[[ :blank: ]]+(.+) BSD"
pattern_
pattern_
system=
if [[ "$partition" =~ $pattern_disk ]]; then "${BASH_ REMATCH[ 1]}"
disk=
while read line; do
system= "${BASH_ REMATCH[ 1]}BSD"
if [[ "$line" =~ $pattern_system ]]; then
break
fi
done< <( fdisk -l $disk )
fi
if [ ! -z $system ]; then version=
if [ -f $dir/etc/motd ]; then
pattern_
case $system in version= "$system[ [:blank: ]]+([[: graph:] ]+)[[:blank: ]]+(\([ [:graph: ]]+\))"
; ;
FreeBSD | NetBSD | OpenBSD) pattern_
esac
title= "$system"
if [ ! -z $pattern_version ]; then
title= "$system ${BASH_REMATCH[1]} ${BASH_REMATCH[2]}"
while read line; do
if [[ "$line" =~ $pattern_version ]]; then
break
fi
done< <( cat $dir/etc/motd )
fi
fi
label= "$(count_ next_label "$system")" $title: $label: chain"
echo "$partition:
exit 0
else
exit 1
fi
else
exit 1
fi