#!/bin/sh
# postinst script for astra-version
#
# see: dh_installdeb(1)

set -e
#set -vx

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package

VERSION=1.7.9.ext1.3

get_version_4() {
    echo "$1" | awk -F . '{ print $4 }'
}

get_version_except_last() {
    echo "$1" | sed -e 's#\.[^.]*$##'
}

is_extrepo() {
    local extrepo
    extrepo=$(get_version_4 "$1")

    case "$extrepo" in
        custom*)
            return 0
            ;;
        *)
            extrepo=$(echo "$extrepo" | sed -e 's/[0-9]\+//')
            test -n "$extrepo"
            ;;
    esac
}

get_extrepo_name() {
    local extrepo
    extrepo=$(get_version_4 "$1")

    case "$extrepo" in
        custom*)
            echo "$extrepo"
            ;;
        *)
            echo "$extrepo" | sed -e 's/[0-9]\+//'
            ;;
    esac
}

get_cache_versions() {
    local v
    v="$1"
    echo $v

    touch /var/log/astra-history.log /var/log/astra-history.log /tmp/
    {
        cat /var/log/astra-history.log /var/log/astra-history.log
        LANG= apt-cache show astra-version | awk '/^Version: / { print $2 }' | sed -e 's/.*\+v//'
    } | sort -u -r
}

create_extended_files() {
    local v
    v="$1"

    local extrepo
    extrepo=$(get_extrepo_name "$v")

    echo "$v" >>/var/log/astra-history.log
    echo "$v" >/etc/astra/"$extrepo"_build_version
    get_version_except_last "$v" >/etc/astra/"$extrepo"_version
}

create_main_files() {
    mkdir -p /etc/astra

    echo "$1" > /etc/astra/build_version
    echo "$1" >>/var/log/astra-history.log
    chmod 600 /var/log/astra-history.log

    BF=/usr/share/base-files/update
    cp -f "$BF"/astra_version "$BF"/lsb-release "$BF"/issue "$BF"/issue.net /etc/
    cp -f "$BF"/os-release /usr/lib/
    ln -sf /usr/lib/os-release /etc/
    test ! -f "$BF"/astra_update_version || cp -f "$BF"/astra_update_version /etc
}

install_files() {
    is_extrepo "$VERSION" || {
        create_main_files "$VERSION"
        return 0
    }

    local versions
    get_cache_versions "$VERSION" | sort -V | while IFS= read -r v
    do
        if is_extrepo "$v"
        then
            create_extended_files "$v"
        else
            create_main_files "$v"
        fi
    done
}

case "$1" in
    configure)
        install_files
        ;;
    abort-upgrade|abort-remove|abort-deconfigure)
        ;;
    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
        ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.



