#/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# rescue rezim bez uprav
if grep -q rescue /proc/cmdline; then
  echo "Aktivni rescue rezim -> ukonceni pre skriptu"
  exit 0
fi
if ifconfig | grep -q 10.2.214; then
  # B214 (MIT)
  winsize=10G
fi
#if ifconfig | grep -q 10.200.206; then
#  # L6
#  winsize=300G
#fi

if [ -z "$winsize" ]; then
  echo "Toto neni nakonfigurovana ucebna"
  exit 0
  #parted /dev/sda rm 2
fi

# nazev zmensovaneho oddilu
part=/dev/sda2

echo "Skript pro zmenseni oddilu $part"
dev=$(echo $part | cut -b1-8)
echo "dev: $dev"
echo "winsize: $winsize"

if fdisk -l | grep "^$dev" | grep Linux; then
  echo "Disk jiz obsahuje Linux oddily"
  exit 0
fi
if ! fdisk -l | grep -q $part; then
  echo "Zde neni oddil $part"
  exit 1
fi
if ! fdisk -l | grep $part | grep -q NTFS; then
  echo "Oddil $part neni typu NTFS"
  exit 1
fi

echo y | ntfsresize -f -s $winsize $part
retcode=$?

if [ $retcode -ge 1 ]; then
  echo "Navratovy kod ntfsresize byl $retcode"
  echo "Zmena velikosti $part selhala"
  exit 1
fi

# newsize is in bytes
newsize=$(echo y | ntfsresize -f -i $part | grep "^Current volume size" | awk '{print $4}')
# start is number of blocks (of 512 bytes )
start=$(fdisk -l | grep $part | awk '{print $2}')
# newend should be in blocks*2
let newsize=$newsize+1000  # bacause round of next line
let newsize=$newsize/1000  # newsize in kB (rounded down)
let newsize=$newsize*2     # number of 512 B blocks
let newend=$start+$newsize # add offset
echo "newend: $newend"

comm=/tmp/fdisk.comm
cat > $comm <<EOF
d
2
n
p
2

$newend
t
2
7
n
p
3


t
3
83
w
EOF

fdisk $dev < $comm
# bug in Anaconda - the partition should be formated
topart=${dev}3
echo "Formatovani: $topart"
sleep 3s
mkfs.ext4 $topart

exit 0

%end
