#! /usr/bin/env bash
# Copyright © 2011, 2012, 2014-15, 2018 Richard Kettlewell.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
set -e
. ${srcdir:-.}/setup.sh

setup

mv ${WORKSPACE}/store1 ${WORKSPACE}/store3

echo "| Stores must be mount points normally"
set +e
STDERR=${WORKSPACE}/got/notmounted.txt RUN=store RSBACKUP_TIME=315532800 s ${RSBACKUP} --backup --store ${WORKSPACE}/store3
status=$?
set -e
if [ $status != 1 ]; then
  echo >&2 "FAILED: store mount check failed"
  exit 1
fi
sed < ${WORKSPACE}/got/notmounted.txt > ${WORKSPACE}/got/notmounted-sed.txt "s,${WORKSPACE},<SRCDIR>,g"
compare ${srcdir:-.}/expect/store/notmounted.txt ${WORKSPACE}/got/notmounted-sed.txt

echo "| Create backup with overridden store"
STDERR=${WORKSPACE}/got/overridden-stderr.txt RUN=store RSBACKUP_TIME=315532800 s ${RSBACKUP} --backup --unmounted-store ${WORKSPACE}/store3 --text ${WORKSPACE}/got/overridden.txt --html ${WORKSPACE}/got/overridden.html
exists ${WORKSPACE}/store-pre.ran
exists ${WORKSPACE}/store-post.ran
compare ${WORKSPACE}/volume1 ${WORKSPACE}/store3/host1/volume1/1980-01-01T00:00:00
compare ${WORKSPACE}/volume2 ${WORKSPACE}/store3/host1/volume2/1980-01-01T00:00:00
absent ${WORKSPACE}/store1/host1/volume1
absent ${WORKSPACE}/store1/host1/volume2
absent ${WORKSPACE}/store2/host1/volume1
absent ${WORKSPACE}/store2/host1/volume2
compare ${srcdir:-.}/expect/store/overridden.txt ${WORKSPACE}/got/overridden.txt
compare ${srcdir:-.}/expect/store/overridden.html ${WORKSPACE}/got/overridden.html
sed < ${WORKSPACE}/got/overridden-stderr.txt > ${WORKSPACE}/got/overridden-stderr-sed.txt "s,${WORKSPACE},<SRCDIR>,g"
compare ${srcdir:-.}/expect/store/overridden-stderr.txt ${WORKSPACE}/got/overridden-stderr-sed.txt

echo "| Create backup with overridden duplicate store"
cp -a ${WORKSPACE}/store3 ${WORKSPACE}/store1
rm -rf ${WORKSPACE}/store1/host1
STDERR=${WORKSPACE}/got/duplicate-stderr.txt RUN=store RSBACKUP_TIME=315532800 s ${RSBACKUP} --backup --unmounted-store ${WORKSPACE}/store3 --text ${WORKSPACE}/got/duplicate.txt --html ${WORKSPACE}/got/duplicate.html
exists ${WORKSPACE}/store-pre.ran
exists ${WORKSPACE}/store-post.ran
compare ${WORKSPACE}/volume1 ${WORKSPACE}/store3/host1/volume1/1980-01-01T00:00:00
compare ${WORKSPACE}/volume2 ${WORKSPACE}/store3/host1/volume2/1980-01-01T00:00:00
absent ${WORKSPACE}/store1/host1/volume1
absent ${WORKSPACE}/store1/host1/volume2
absent ${WORKSPACE}/store2/host1/volume1
absent ${WORKSPACE}/store2/host1/volume2
sed < ${WORKSPACE}/got/duplicate-stderr.txt > ${WORKSPACE}/got/duplicate-stderr-sed.txt "s,${WORKSPACE},<SRCDIR>,g"
compare ${srcdir:-.}/expect/store/duplicate.txt ${WORKSPACE}/got/duplicate.txt
compare ${srcdir:-.}/expect/store/duplicate.html ${WORKSPACE}/got/duplicate.html
compare ${srcdir:-.}/expect/store/duplicate-stderr.txt ${WORKSPACE}/got/duplicate-stderr-sed.txt

cleanup
