#!/bin/bash

restoreDir="/etc/restore"


hook_check() {
    if [[ -d "$restoreDir" ]]; then
        rm -rf "$restoreDir" || exit 1
    fi
}

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

    rpm -qa | sort > Package.versions.list
    rpm -qa --queryformat '%{NAME}\n' | sort > Package.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

cat Package.list | xargs zypper install
EOF

    popd || exit 2
}

hook_post() {
    rm -rf "$restoreDir"
}

case "$1" in
    before_check)   hook_check;;
    before_backup)  hook_pre;;
    after_backup)   hook_post;;
esac