#!/bin/bash

die () {
  echo "$1 FAILED at `date`!"
  exit 1
}


echo "partition create started at `date` ..."
parted -s /dev/xvdg mklabel msdos || die "label create"
parted -s /dev/xvdg mkpart primary xfs 0% 100% || die "partition create"
echo -e "done at `date`\n"


echo "FS create started at `date` ..."
mkfs.xfs /dev/xvdg1 || die "FS create"
echo -e "done at `date`\n"


if [ ! -d /mnt/leveldb2019transfer ]; then
  echo "mountpoint create started at `date` ..."
  mkdir /mnt/leveldb2019transfer || die "mountpoint create"
  echo -e "done at `date`\n"
fi


echo "mount started at `date` ..."
mount /dev/xvdg1 /mnt/leveldb2019transfer || die "mount"
echo -e "done at `date`\n"


echo "services stop at `date` ..."

systemctl stop spotifyingest1.timer

x=255

until [ $x -eq 0 ]; do
  systemctl status spotifyingest1.timer | grep -q 'Active: inactive'
  x=$?
  sleep 1
done


systemctl stop spotifyingest2.timer

x=255

until [ $x -eq 0 ]; do
  systemctl status spotifyingest2.timer | grep -q 'Active: inactive'
  x=$?
  sleep 1
done


systemctl stop spotifyingest1.service

x=255

until [ $x -ne 0 ]; do
  systemctl status spotifyingest1.service | grep -q 'Active: inactive'
  x=$?
  sleep 1
done


systemctl stop spotifyingest2.service

x=255

until [ $x -ne 0 ]; do
  systemctl status spotifyingest2.service | grep -q 'Active: inactive'
  x=$?
  sleep 1
done


systemctl stop spotifyapi.service

x=255

until [ $x -ne 0 ]; do
  systemctl status spotifyapi.service | grep -q 'Active: inactive'
  x=$?
  sleep 1
done


systemctl stop spotifydb2019.service

x=255

until [ $x -ne 0 ]; do
  systemctl status spotifydb2019.service | grep -q 'Active: inactive'
  x=$?
  sleep 1
done

echo -e "done at `date`\n"


echo "data copy started at `date` ..."
cp -rp /mnt/ssd/databases/spotify2019.db /mnt/leveldb2019transfer/ || die "data copy"
echo -e "done at `date`\n"


echo "umount started at `date` ..."
umount /mnt/leveldb2019transfer || die "umount"
echo -e "done at `date`\n"
