#!/bin/sh
#
# partlist prints detected Linux, Linux Swap and DOS partitions
#

callname=`basename $0 `

function usage () {
	echo " "
	echo "$callname: prints detected Linux, Linux Swap and DOS partitions"
	echo "  Usage: $callname"
	echo " "
}

if [ "$1" = '-h' -o "$1" = '-?' ]; then
	usage
	exit 1
fi

function linuxpart () {
(fdisk $1 << EOF
p
q
EOF
) | grep "Linux" | grep -v "Linux swap"
}

function linuxswap () {
(fdisk $1 << EOF
p
q
EOF
) | grep "Linux swap"
}


function primary () {
(fdisk $1 << EOF
p
q
EOF
) | egrep -e "^/dev/...[1234] "
}

function extended () {
(fdisk $1 << EOF
p
q
EOF
) | egrep -e '^/dev/...[56789] '
}



echo "Linux Partitions"
linuxpart /dev/hda 2> /dev/null
linuxpart /dev/hdb 2> /dev/null
linuxpart /dev/sda 2> /dev/null
linuxpart /dev/sdb 2> /dev/null
echo " "
echo "Linux Swap"
linuxswap /dev/hda 2> /dev/null
linuxswap /dev/hdb 2> /dev/null
linuxswap /dev/sda 2> /dev/null
linuxswap /dev/sdb 2> /dev/null
echo " "
echo "DOS Partitions"
echo "Primary"
(primary /dev/hda | grep DOS ) 2> /dev/null
(primary /dev/hdb | grep DOS ) 2> /dev/null
(primary /dev/sda | grep DOS ) 2> /dev/null
(primary /dev/sdb | grep DOS ) 2> /dev/null
echo "Extended"
(extended /dev/hda | grep DOS ) 2> /dev/null
(extended /dev/hdb | grep DOS ) 2> /dev/null
(extended /dev/sda | grep DOS ) 2> /dev/null
(extended /dev/sdb | grep DOS ) 2> /dev/null
