#!/bin/bash

set -eu

case $(git status --porcelain --untracked-files=no) in
    "") ;;
    *) echo "ERROR: Current working copy has been modified - not proceeding"; exit 2;;
esac

mkdir -p packages
echo

version=$(grep '^ *version:' meson.build | sed "s/^ *version: *'//" | sed "s/'.*$//")

if [ -d /Applications ]; then

    if [ -z "$QTDIR" ]; then
	echo "QTDIR must be set"
    fi

    echo -n "Proceed to rebuild, package, and sign version $version [Yn] ? "
    read yn
    case "$yn" in "") ;; [Yy]) ;; *) exit 3;; esac
    echo "Proceeding"

    ./repoint install

    rm -rf build
    meson build --buildtype release -Db_lto=true
    ninja -C build

    app="Sonic Visualiser"
    volume="$app"-"$version"
    dmg="$volume".dmg

    rm -rf "$app.app"
    rm -rf "$volume"
    rm -f "$dmg"

    deploy/osx/deploy-and-package.sh

    mv "$dmg" packages/

else

    echo -n "Proceed to rebuild and package version $version [Yn] ? "
    read yn
    case "$yn" in "") ;; [Yy]) ;; *) exit 3;; esac
    echo "Proceeding"

    ./deploy/linux/build-and-test-appimage.sh

    current=$(git rev-parse --short HEAD)

    squashedversion=$(echo "$version" | sed 's/_-//g')

    mv deploy/linux/docker/output/SonicVisualiser-"$current"-x86_64.AppImage \
	packages/SonicVisualiser-"$squashedversion"-x86_64.AppImage

    ./deploy/linux/build-and-test-deb.sh

    mv deploy/linux/docker/output/sonic-visualiser_"$version"_amd64.deb \
	packages/
fi

echo "Done"

