#!/bin/sh
. /etc/utils.sh

die() {
  echo "$0: failed." >&2
  exit 1
}

rm -rf /dev/mtd.new
mkdir /dev/mtd.new || die
cd /dev/mtd.new || die

{
  read junk  # header line
  while IFS=': ' read dev size erasesize name; do
    if ! startswith "$name" '"' || ! endswith "$name" '"'; then
      echo "$0: '$name' must be quoted" >&2
      die
    fi
    if ! startswith "$dev" 'mtd'; then
      echo "$0: '$dev' must start with 'mtd'" >&2
      die
    fi
    name=${name#'"'}
    name=${name%'"'}
    devno=${dev#mtd}

    # TODO(apenwarr): remove special case for 'rootfs' nodes.
    #  They should be named rootfs0+ubi and rootfs1+ubi for clarity and
    #  to help avoid special cases.
    if endswith "$name" "+ubi" ||
       [ "$name" = "rootfs0" ] ||
       [ "$name" = "rootfs1" ]; then
      # ubifs host partitions are the only ones that need to be char
      # devices.  Everything else can be a block device.
      ndev="mtd$devno"
    else
      ndev="mtdblock$devno"
    fi
    if [ ! -e "/dev/$ndev" ]; then
      echo "$0: '/dev/$ndev' does not exist" >&2
      die
    fi
    ln -s "../$ndev" "$name"
  done
} </proc/mtd || die

for x in 0 1 2 3 4 5; do
  sgdisk -p /dev/mmcblk${x} 2>/dev/null |
  while read number start end size unit code name; do
    if [ ! -z "${number##*[!0-9]*}" ]; then
      mmc=mmcblk${x}p${number}
      ln -s "../$mmc" "$name"
    fi
  done
done || die

rm -rf /dev/mtd
mv /dev/mtd.new /dev/mtd || die
