#!/bin/bash
############################################################################## 
#
# Copyright (C) 2014 - 2016 x-odos GnbH
#
##############################################################################

if [ $# -ne 1 ]
then
    echo "Usage: format-usb-drive <device-name>"
    exit 1
fi

USB_DRIVE=$1 PARTITION=${USB_DRIVE}1

# Make sure device is a USB drive

if ! udevadm info --query=path --name $USB_DRIVE | grep usb > /dev/null 2>&1
then
    echo "$USB_DRIVE is not a USB device"
    exit 3
fi

# Make sure drive is not mounted

if mount | grep $PARTITION > /dev/null 2>&1
then
    echo "$PARTITION is mounted; unmounting..."
    umount $PARTITION
fi

# Partition the drive using parted
echo "Cleaning drive..."
sgdisk --zap-all --clear --mbrtogpt $USB_DRIVE > /dev/null 
sgdisk -N 1 -c 1:"x-odos_Backup" -t 1:0700 $USB_DRIVE > /dev/null 

if [ $? -ne 0 ]
then
    echo "sgdisk failed!"
    exit 4
fi

# Format the drive with an NTFS filesystem

echo "Formatting backup drive with NTFS..."
mkntfs -f --label "x-odos Backup" $PARTITION > /dev/null

if [ $? -ne 0 ]
then
    echo "mkntfs failed!"
    exit 5
fi

sleep 2
ntfsfix $PARTITION > /dev/null

# Mount the drive

mount $PARTITION /backup

if [ $? -ne 0 ]
then
    echo "mount failed!"
    exit 6
fi

# Create a x-odos.txt file on the drive

echo "This is a xo|one backup drive created on $(date)" > /backup/xo-one.txt
cd /fusb
cp -r /fusb/ /backup

# Unmount the drive when done

umount /backup

# Done

parted $USB_DRIVE print
