#!/bin/ash

# copyright 2004 vagrant@freegeek.org, distributed under the terms of the
# GNU General Public License version 2 or any later version.

if [ -e /etc/lessdisks/server.config ]; then
  . /etc/lessdisks/server.config
fi

if [ "yes" = "$use_mknbi" ]; then
  use_mknbi=true
fi

if [ "true" != "$use_mknbi" ]; then
  echo "skipping mknbi generation..."
  exit 0
fi

# mkelf-linux is the newer standard
if [ -n "$(which mkelf-linux)" ]; then
  mknbi_command=mkelf-linux
elif [ -n "$(which mknbi-linux)" ]; then
  mknbi_command=mknbi-linux
else
  echo "couldn't find mknbi-linux or mkelf-linux... exiting..."
  exit 1
fi

if [ -z "$mknbi_opts" ]; then
  mknbi_opts="--ip=dhcp"
fi

# turn kernel-images into network-bootable kernel images
cd /boot
for kernel in `ls vmlinuz* | egrep -v "\.nb"` ; do
  if [ -L "$kernel" ]; then
    realkernel=$(readlink $kernel)
    if [ -e "$realkernel" ]; then
      echo "making symbolic link from $kernel.nb to $realkernel.nb"
      ln -sf $realkernel.nb $kernel.nb
    fi
  else
    echo "making $kernel.nb"
    kversion=$(echo $kernel | cut -d "-" -f 2,3,4,5,6)
    if [ "$kversion" = "vmlinuz" ]; then
      kversion=
    else
      kversion="-$kversion"
    fi
    initrd=
    initrd_error=
    if [ -s "initrd.img$kversion" ]; then
      initrd="initrd.img$kversion"
      echo "using initrd: $initrd"
    elif [ -e "initrd.img$kversion" ]; then
      echo "WARNING: initrd.img$kversion has zero size!"
      echo "not making $kernel.nb"
      initrd_error=true
    fi
    if [ -z "$initrd_error" ]; then
      $mknbi_command $mknbi_opts $kernel $initrd > $kernel.nb
    fi
  fi
  echo
done
