#!/bin/sh

set -e



#
# Check environment
#

if [ $# -ne 2 ]
then
    echo "Bad usage. Use Pt-storage ." >&2
    exit 1
fi

DEVICE="$1"
FS_TYPE="$2"

# Compute resultant partition name
#  e.g. /dev/sda → /dev/sda1
#       /dev/mmcblk0 → /dev/mmcblk0p1
case "${DEVICE}" in
/dev/sd?)
    PARTITION="${DEVICE}1"
    ;;
/dev/mmcblk?)
    PARTITION="${DEVICE}p1"
    ;;
*)
    echo "Don't know how to turn ${DEVICE} into a partition." >&2
    exit 1
    ;;
esac

# Hex code for fdisk's partition type
case "${FS_TYPE}" in
fat32)
    PTYPE="c"
    ;;
ext4)
    PTYPE="83"
    ;;
*)
    echo "Unknown fs_type setting \"${FS_TYPE}\" in ${CONFIG} ." >& 2
    exit 1
esac



#
# Write a new partition table
#

echo "Partitioning ${DEVICE} (type ${PTYPE})..."

fdisk "${DEVICE}" <<EOF
o
n
p
1


t
${PTYPE}
w
EOF

echo "Wrote partition table, waiting for /dev to update..."
sleep 5



#
# Write the new filesystem
#

echo "Formatting ${PARTITION} (type ${FS_TYPE})..."

case "${FS_TYPE}" in
fat32)
    mkdosfs -F 32 -v "${PARTITION}"
    ;;

ext4)
    mke2fs -q -t ext4 "${PARTITION}"
    ;;
esac

echo "Formatting completed successfully."



# vim: ts=4:sw=4:expandtab
