#!/bin/bash

FILES_TO_KEEP=5

IDX_TO_RESTORE=$1
DIR=`dirname $0`
BACKUP_FOLDER=""
TMP=""

if [ -e "/opt/pos/.hardlock" ]; then
  TMP=`cat /opt/pos/.hardlock`
fi

if [ "$TMP" = "" ]; then
  echo "No /opt/pos/.hardlock found... maybe POS isn't running with an hardlock..."
  exit
fi

FF=`dirname $TMP`
BACKUP_FOLDER="$FF/data/backups"

if [ "$BACKUP_FOLDER" = "" ]; then
  echo "Can't find backup folder to put backups in... check why /opt/pos/.hardlock isn't created..."
  exit
fi

if [ ! -d "$BACKUP_FOLDER" ]; then
  mkdir -p "$BACKUP_FOLDER"
fi

PEN_PATH=$FF

if [ "$IDX_TO_RESTORE" = "" ]; then
  echo "Usage: $0 <idx_to_restore>"
  echo ""
  echo "Available Indexes:"
  echo ""

  COUNT=1

  if [ -d "$PEN_PATH/data/backups" ]; then
    find "$PEN_PATH/data/backups" -type f | grep "\.zip" | sort -n -r | while read -r file
    do
      touch /tmp/has_backups.txt
      echo "$COUNT - $file"
      COUNT=$(($COUNT+1))
    done

    if [ ! -f "/tmp/has_backups.txt" ]; then
      echo "NO BACKUPS"
    else
      rm -rf /tmp/has_backups.txt
    fi

    echo ""
    echo ""
  else
    echo "NO BACKUPS"
  fi
else
  RESTORE_IDX=$1

  COUNT=1

  find "$PEN_PATH/data/backups" -type f | grep "\.zip" | sort -n -r | while read -r file
  do
    if [ "$COUNT" = "$RESTORE_IDX" ]; then
      "$DIR/restore" "$file"
      echo "$file" > /tmp/done.txt
    fi

    COUNT=$(($COUNT+1))
  done

  if [ ! -f "/tmp/done.txt" ]; then
    echo "Can't find backup with index $RESTORE_IDX..."
  else
    RESTORED_FILE=`cat /tmp/done.txt`
    rm -rf /tmp/done.txt
    echo "OK ($RESTORED_FILE)"
    touch /tmp/restart.txt
  fi
fi

