#!/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