Apply upstream PR 2811
Adds the PRE/POST_RECOVERY_COMMANDS directives. Resolves: rhbz2111059
This commit is contained in:
parent
29999f101e
commit
5e7f042a11
105
rear-bz2111059.patch
Normal file
105
rear-bz2111059.patch
Normal file
@ -0,0 +1,105 @@
|
||||
commit 552dd6bfb20fdb3dc712b5243656d147392c27c3
|
||||
Author: Johannes Meixner <jsmeix@suse.com>
|
||||
Date: Thu Jun 2 15:25:52 2022 +0200
|
||||
|
||||
Merge pull request #2811 from rear/jsmeix-RECOVERY_COMMANDS
|
||||
|
||||
Add PRE_RECOVERY_COMMANDS and POST_RECOVERY_COMMANDS
|
||||
as alternative to PRE_RECOVERY_SCRIPT and POST_RECOVERY_SCRIPT
|
||||
see the description in default.conf how to use them and how they work.
|
||||
See https://github.com/rear/rear/pull/2811 and see also
|
||||
https://github.com/rear/rear/pull/2735 therein in particular
|
||||
https://github.com/rear/rear/pull/2735#issuecomment-1134686196
|
||||
Additionally use LogPrint to show the user the executed commands,
|
||||
see https://github.com/rear/rear/pull/2789
|
||||
|
||||
diff --git a/usr/share/rear/conf/default.conf b/usr/share/rear/conf/default.conf
|
||||
index cb14da8b..b14525da 100644
|
||||
--- a/usr/share/rear/conf/default.conf
|
||||
+++ b/usr/share/rear/conf/default.conf
|
||||
@@ -3117,14 +3117,37 @@ ELILO_BIN=
|
||||
################ ---- custom scripts
|
||||
#
|
||||
# NOTE: The scripts can be defined as an array to better handly spaces in parameters.
|
||||
-# The scripts are called like this: eval "${PRE_RECOVERY_SCRIPT[@]}"
|
||||
+# The scripts are called like this:
|
||||
+# eval "${PRE_RECOVERY_SCRIPT[@]}"
|
||||
+#
|
||||
+# Alternatively, commands can be executed by using the corresponding
|
||||
+# PRE_RECOVERY_COMMANDS and POST_RECOVERY_COMMANDS array variables
|
||||
+# which evaluate like this:
|
||||
+# for command in "${PRE_RECOVERY_COMMANDS[@]}" ; do
|
||||
+# eval "$command"
|
||||
+# done
|
||||
+#
|
||||
+# Using PRE_RECOVERY_COMMANDS and POST_RECOVERY_COMMANDS
|
||||
+# is simpler when multiple commands should be executed.
|
||||
+# For example,
|
||||
+# PRE_RECOVERY_SCRIPT=( 'echo Hello' ';' 'sleep 3' )
|
||||
+# can be rewritten as
|
||||
+# PRE_RECOVERY_COMMANDS=( 'echo Hello' 'sleep 3' )
|
||||
+# or
|
||||
+# PRE_RECOVERY_COMMANDS=( 'echo Hello' )
|
||||
+# PRE_RECOVERY_COMMANDS+=( 'sleep 3' )
|
||||
+
|
||||
+# Those get called at the very beginning of "rear recover".
|
||||
+# The PRE_RECOVERY_COMMANDS are called directly before the PRE_RECOVERY_SCRIPT.
|
||||
+# Nothing was recreated and you have only the plain ReaR rescue/recovery system:
|
||||
+PRE_RECOVERY_COMMANDS=()
|
||||
+PRE_RECOVERY_SCRIPT=
|
||||
|
||||
-# Call this after Relax-and-Recover did everything in the recover workflow.
|
||||
-# Use $TARGET_FS_ROOT (by default '/mnt/local') to refer to the recovered system.
|
||||
+# Those get called at the very end of "rear recover".
|
||||
+# The POST_RECOVERY_COMMANDS are called directly after the POST_RECOVERY_SCRIPT.
|
||||
+# Use $TARGET_FS_ROOT (by default '/mnt/local') to access the recreated target system.
|
||||
POST_RECOVERY_SCRIPT=
|
||||
-
|
||||
-# Call this before Relax-and-Recover starts to do anything in the recover workflow. You have the rescue system but nothing else
|
||||
-PRE_RECOVERY_SCRIPT=
|
||||
+POST_RECOVERY_COMMANDS=()
|
||||
|
||||
# PRE/POST Backup scripts will provide the ability to run certain tasks before and after a ReaR backup.
|
||||
# for example:
|
||||
diff --git a/usr/share/rear/setup/default/010_pre_recovery_script.sh b/usr/share/rear/setup/default/010_pre_recovery_script.sh
|
||||
index 005107cc..8b4e4a36 100644
|
||||
--- a/usr/share/rear/setup/default/010_pre_recovery_script.sh
|
||||
+++ b/usr/share/rear/setup/default/010_pre_recovery_script.sh
|
||||
@@ -1,4 +1,14 @@
|
||||
+
|
||||
+# The PRE_RECOVERY_COMMANDS are called directly before the PRE_RECOVERY_SCRIPT
|
||||
+# so PRE_RECOVERY_COMMANDS can also be used to prepare things for the PRE_RECOVERY_SCRIPT:
|
||||
+
|
||||
+local command
|
||||
+for command in "${PRE_RECOVERY_COMMANDS[@]}" ; do
|
||||
+ LogPrint "Running PRE_RECOVERY_COMMANDS '$command'"
|
||||
+ eval "$command"
|
||||
+done
|
||||
+
|
||||
if test "$PRE_RECOVERY_SCRIPT" ; then
|
||||
- Log "Running PRE_RECOVERY_SCRIPT '${PRE_RECOVERY_SCRIPT[@]}'"
|
||||
- eval "${PRE_RECOVERY_SCRIPT[@]}"
|
||||
+ LogPrint "Running PRE_RECOVERY_SCRIPT '${PRE_RECOVERY_SCRIPT[@]}'"
|
||||
+ eval "${PRE_RECOVERY_SCRIPT[@]}"
|
||||
fi
|
||||
diff --git a/usr/share/rear/wrapup/default/500_post_recovery_script.sh b/usr/share/rear/wrapup/default/500_post_recovery_script.sh
|
||||
index 77751800..866c9368 100644
|
||||
--- a/usr/share/rear/wrapup/default/500_post_recovery_script.sh
|
||||
+++ b/usr/share/rear/wrapup/default/500_post_recovery_script.sh
|
||||
@@ -1,4 +1,14 @@
|
||||
+
|
||||
+# The POST_RECOVERY_COMMANDS are called directly after the POST_RECOVERY_SCRIPT
|
||||
+# so POST_RECOVERY_COMMANDS can also be used to clean up things after the POST_RECOVERY_SCRIPT:
|
||||
+
|
||||
if test "$POST_RECOVERY_SCRIPT" ; then
|
||||
- Log "Running POST_RECOVERY_SCRIPT '${POST_RECOVERY_SCRIPT[@]}'"
|
||||
- eval "${POST_RECOVERY_SCRIPT[@]}"
|
||||
+ LogPrint "Running POST_RECOVERY_SCRIPT '${POST_RECOVERY_SCRIPT[@]}'"
|
||||
+ eval "${POST_RECOVERY_SCRIPT[@]}"
|
||||
fi
|
||||
+
|
||||
+local command
|
||||
+for command in "${POST_RECOVERY_COMMANDS[@]}" ; do
|
||||
+ LogPrint "Running POST_RECOVERY_COMMANDS '$command'"
|
||||
+ eval "$command"
|
||||
+done
|
@ -35,6 +35,7 @@ Patch44: rear-bz2104005.patch
|
||||
Patch45: rear-bz2097437.patch
|
||||
Patch46: rear-bz2096916.patch
|
||||
Patch47: rear-bz2096900.patch
|
||||
Patch48: rear-bz2111059.patch
|
||||
|
||||
# rear contains only bash scripts plus documentation so that on first glance it could be "BuildArch: noarch"
|
||||
# but actually it is not "noarch" because it only works on those architectures that are explicitly supported.
|
||||
|
Loading…
Reference in New Issue
Block a user