#!/bin/bash
#
# usage: 
#    sm_mkvolume </dev/sd?> <LABEL>
#
# example:
#    sm_mkvolume /dev/sdb va-1234
#
# notes: 
#    1. should be run by root
#    2. uses FSTYPE from /var/sarch/conf/sm/options if defined 
#    3. uses xfs if FSTYPE is not defined

dev=$1
label=$2
uid=`id -u`

APL=/opt/sarch
PARTED="parted -s"
MKFS=$APL/sm/sbin/sm_mkfs

Err() {
 echo; echo $* ; echo
 exit 1
}
#-------------------------------------------------- CHECK ARGUMENTS
[ $uid != 0 ]         && Err "Should be run by root"
[ -z "$dev" ]         && Err "Usage: $0 </dev/sd?> <LABEL>"
[ -e  $dev  ]         || Err "Device '$dev' does not exist"
[ $dev = '/dev/sda' ] && Err "$dev cannot be used since dedicated for system" 
perl -e "exit 1 if not '$label'=~/^va-\d\d\d\d$/" || Err "LABEL is not correct"
#-------------------------------------------------- chose FSTYPE
FSTYPE=`perl -e '%o=map{/(^\w+)=(.+)/} grep {/^\w+=.+/}<OPT> if open OPT,"/var/sarch/conf/sm/options"; 
		 $o{FSTYPE}="xfs" if ! $o{FSTYPE};
		 print "$o{FSTYPE}\n"'`
[ -x $MKFS.$FSTYPE ]    || Err "$MKFS.$FSTYPE is missing"


echo "----------------------------------------------- current partition"
$PARTED $dev print free
echo "Re-creating volume $label on device $dev fstype=$FSTYPE. Print START for continue:"
read start
[ "$start" != START ] && Err "START was expected for continue($start)"

$PARTED $dev mktable gpt
$PARTED $dev mkpart primary 2048s 100%
$PARTED $dev name 1 $label
echo "----------------------------------------------- final partition"
$PARTED $dev print free
sleep 1
$MKFS.$FSTYPE ${dev}1 $label
echo "=============================================== format completed"

