#!/bin/sh

Usage() {
    echo "USAGE: $0 backup|restore" 1>&2
    exit 2
}

MODE="$1"

if [ -z "$MODE" ]; then
    echo "ERROR: missing mode."  1>&2
    Usage
else
    shift
fi

if [ -z "$BACKUP_BASEDIR" ]; then
    BACKUP_BASEDIR="/data"  # all PAVICS deployment have /data
fi

if [ -z "$BACKUP_FILENAME" ]; then
    BACKUP_FILENAME="solr-index-backup.tgz"
fi

if [ -z "$BACKUP_CONTAINER_NAME" ]; then
    BACKUP_CONTAINER_NAME="backup-restore-solr"
fi

if [ -z "$SOLR_CONTAINER_NAME" ]; then
    SOLR_CONTAINER_NAME="solr"
fi


set -x

if [ x"$MODE" = xbackup ]; then
    docker run --rm --name $BACKUP_CONTAINER_NAME \
        --volumes-from $SOLR_CONTAINER_NAME \
        -v $BACKUP_BASEDIR:/backup -w / bash \
        tar czf "/backup/$BACKUP_FILENAME" data/solr/
elif [ x"$MODE" = xrestore ]; then
    docker run --rm --name $BACKUP_CONTAINER_NAME \
        --volumes-from $SOLR_CONTAINER_NAME \
        -v $BACKUP_BASEDIR:/backup -w / bash \
        tar xzf "/backup/$BACKUP_FILENAME"
else
    set +x
    echo "ERROR: invalid mode '$MODE'."  1>&2
    Usage
fi
