#!/bin/bash

set -e

configure() {
    LOGDIR="/var/log/atop"
    # this has been in place since at least buster. remove post-trixie
    rm -f "${LOGDIR}/dummy_after" "${LOGDIR}/dummy_before"
    # check whether atop will read its own latest file
    # point atop to the latest file and check for output on stdout
    # the pipe will prevent atop from going interactive, and if it
    # won't read the file, stdout will be empty.
    LATESTFILE="$(find "${LOGDIR}" -maxdepth 1 -type f \
            -regextype posix-egrep -regex '.*/atop_[0-9]+$' \
            -printf '%p\n' | sort | tail -n 1)"
    if [ -n "${LATESTFILE}" ]; then
        if ! atop -r "${LATESTFILE}" 2>/dev/null | head -n 5 | grep -q '.'; then
            # updating from an older version which won't read
            # the old log file format
            # take a backup of the old file and convert it
            BACKUPFILE="${LATESTFILE}_oldformat"
            if [ -e "${BACKUPFILE}" ]; then
                TIMESTAMP=$(date +%Y%m%dT%H%M%S)
                BACKUPFILE="${LATESTFILE}_oldformat_${TIMESTAMP}"
            fi
            if mv "${LATESTFILE}" "${BACKUPFILE}"; then
                if atopconvert "${BACKUPFILE}" "${LATESTFILE}" >/dev/null; then
                    if ! atop -r "${LATESTFILE}" 2>/dev/null | head -n 5 | grep -q '.'; then
                        printf >&2 "atop postinst: error reading converted log file %s.\\n" "${LATESTFILE}"
                        # remove generated file, we do without the converted file
                        rm -f "${LATESTFILE}"
                    fi
                else
                    printf >&2 "atop postinst: conversion failed from %s to new atop raw file format %s" "${BACKUPFILE}" "${LATESTFILE}"
                    # remove generated file, we do without the converted file
                    rm -f "${LATESTFILE}"
                fi
            else
                printf >&2 "atop postinst: failed to back up %s\\n" "${LATESTFILE}"
                exit 1
            fi
        fi
    fi
}

case "$1" in
    configure) configure ;;
esac

#DEBHELPER#

# vim: tabstop=4 expandtab

