#!/bin/sh
#
# initramfs load/save
#

MMC=/dev/mmcblk0p1
MNT_SD=/mnt
CPIO=initramfs.cpio.gz
W=/tmp/stage

if [ ! -b "$MMC" ]; then
    echo "The process is aborted because the MMC is invalid."
    exit 1
fi

# mount SD
mount -t vfat $MMC $MNT_SD

case "$1" in
  load)
    # prepare staging directory
    if [ -e $W ]; then
      rm -r $W
    fi
    mkdir $W
    cd $W

    # load initramfs
    gunzip -c $MNT_SD/$CPIO | cpio -id
    echo "$CPIO has been extracted to $W."
    ;;

  save)
    # remake initramfs
    if [ ! -e $W ]; then
      echo "working directory is not exist"
    fi
    cd $W
    find . | cpio -o -H newc | gzip -c > $MNT_SD/$CPIO
    echo "Saving initramfs.cpio.gz is complete."
    ;;

  *)
    echo "load|save"
    ;;
esac

# unmount SD
umount $MNT_SD
