Comment 21 for bug 432254

Revision history for this message
Andrey Gavrilin (gaal-dev) wrote :

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
  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

    label="$(count_next_label "$system")"
    echo "$partition:$title:$label:chain"

    exit 0
  else
    exit 1
  fi
else
  exit 1
fi