#!/bin/bash

#Fail on error
set -e

export HOME=$AUTOPKGTEST_TMP/home
mkdir "$HOME"
DATA=$AUTOPKGTEST_TMP/data
export BORG_REPO=$AUTOPKGTEST_TMP/borgrepo
MOUNT=$AUTOPKGTEST_TMP/mnt

cd $AUTOPKGTEST_TMP

borg() {
	borg2 "$@"
}

echo "Checking borg is callable"
borg --version

echo "Creating source data dir and mountpoint"
mkdir $DATA
mkdir $MOUNT

echo "Calling borg rcreate"
borg rcreate --encryption none

# create source data

echo "Creating runone"
echo Hello, world > $DATA/file1
borg create runone data/

echo "Creating runtwo"
echo Hello again > $DATA/file2
borg create runtwo data/

echo "Listing archives"
borg rlist

echo "Listing runone and runtwo contents"
borg list runone
borg list runtwo

echo "Testing borg extract --stdout"
borg extract --stdout runtwo data/file1 | grep -q "world"
borg extract --stdout runtwo data/file2 | grep -q "again"

echo "Mounting runtwo via fuse"
borg mount runtwo $MOUNT

echo "Checking file contents in the fuse mount"
cmp $DATA/file1 $MOUNT/data/file1
cmp $DATA/file2 $MOUNT/data/file2

echo "Unmounting runtwo"
fusermount -u $MOUNT

echo "Mounting runone via fuse"
borg mount runone $MOUNT

echo "Checking file contents"
cmp $DATA/file1 $MOUNT/data/file1
test ! -e $MOUNT/data/file2

echo "Unmounting"
fusermount -u $MOUNT

echo "All good!"
