#!/bin/bash

restoreDir="/etc/restore"

hook_before() {
    mkdir -p "$restoreDir" || exit 1
    pushd "$restoreDir" || exit 2

    rpm -qa | sort > Package.versions.list
    rpm -qa --queryformat '%{NAME}.%{ARCH}\n' | sort > Package.list
    #FIXME Need to put this to use for explicitely installed packages.
    dnf repoquery --userinstalled > Package.userinstalled.list

    cat > restore.sh <<EOF
#!/bin/bash

if [[ ! -f "Package.list" ]]; then
    echo "This needs to be run inside the restore directory."
    exit 1
fi

dnf install \$(cat Package.list)
EOF

    popd || exit 2
}

hook_after() {
    :
}

hook_fail() {
    :
}

hook_final() {
    :
}

case "$1" in
    before)     hook_before     || exit $?;;
    after)      hook_after      || exit $?;;
    fail)       hook_fail       || exit $?;;
    finally)    hook_final      || exit $?;;
esac