#!/bin/bash
# -*- Mode:Shell; indent-tabs-mode:nil; tab-width -*-
#
# Copyright 2022 Kenneth Loafman <kenneth@loafman.com>,
# Edgar Soldin <https://soldin.de>
#
# This file is part of duplicity.
#
# Duplicity 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 2 of the License, or (at your
# option) any later version.
#
# Duplicity 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 duplicity; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

set -e

if [ "`uname`" != "Linux" ]; then
    echo "$0 does not run on `uname`"
    exit 2
fi

if [ "$#" -ne 0 ]; then
    echo "usage: $0"
    exit 2
fi

VERSION=`./setup.py --version`
echo  "$0 of ${VERSION}"

echo -e "\n*** test overall integrity of all snaps"
echo "unsquashfs will print an error in case the image is corrupted"
for f in build/duplicity-*/*.snap; do echo "$f"; unsquashfs -l "$f" > /dev/null; done

echo -e  "\n*** test for the multi-lib snapcraft issue ***"
echo "See: https://bugs.launchpad.net/duplicity/+bug/1965814"
RES=`find /snap/duplicity/current/usr/lib/ -type d -name 'python3.*' | wc -l`
if [ "${RES}" -gt 1 ]; then
    find /snap/duplicity/current/usr/lib/ -type d -name 'python3.*'
    echo -e "WARNING: Multiple python lib versions exist in snap."
else
    echo "All Good.  Only one version of python libs installed."
fi

echo -e  "\n*** test 'duplicity --version' ***"
/snap/bin/duplicity --version

echo -e  "\n*** test backup ***"
[ -e /tmp/testdup ] && rm -rfv /tmp/testdup
PASSPHRASE=test /snap/bin/duplicity full --name=testsnap ./duplicity file:///tmp/testdup

echo -e  "\n*** test verify ***"
PASSPHRASE=test /snap/bin/duplicity verify --name=testsnap file:///tmp/testdup ./duplicity
