#!/bin/bash

testsdir=$(dirname "$(readlink -f "${0}")")
progdir="${testsdir}/../scripts"
script="${progdir}/ppa"
ppa_name="ppa-test-set-${RANDOM}"

[ -e "${script}" ] || {
    echo "Could not locate ppa command '${script}'."
    exit 1
}

ppa_create() {
    echo -n "* Creating ${ppa_name} .."
    if "${script}" create "${ppa_name}"; then
        echo ". OK"
    else
        echo "! ERROR"
        exit 1
    fi
}

ppa_destroy() {
    echo -n "* Destroying ${ppa_name} .."
    if "${script}" destroy "${ppa_name}"; then
        echo ". OK"
    else
        echo "! ERROR"
        exit 1
    fi
}

ppa_status() {
    "${script}" status "${ppa_name}"
}

ppa_set() {
    echo -n "* Setting ${1} .."
    if "${script}" set "${ppa_name}" "${@}"; then
        echo ". OK"
    else
        echo "! ERROR"
    fi
}

echo "### Default configuration ###"
ppa_create && \
    trap "ppa_destroy" EXIT
ppa_status

echo
echo "### Set parameters ###"
ppa_set --displayname "parameters-set"
ppa_set --description "Updated PPA with various settings changed"
ppa_set --all-architectures
ppa_set --no-publish
ppa_status

echo
echo "### Restore to default parameters ###"
ppa_set --displayname "${ppa_name}"
ppa_set --description ""
ppa_set --default-architectures
ppa_set --publish
ppa_status

echo
echo "### Private PPA ###"
ppa_set --private
ppa_set --public
