/usr/local/jetapps/usr/share/rear/lib
# dump-workflow.sh # # dump workflow for Relax-and-Recover # # This file is part of Relax-and-Recover, licensed under the GNU General # Public License. Refer to the included COPYING for full text of license. LOCKLESS_WORKFLOWS+=( dump ) WORKFLOW_dump_DESCRIPTION="dump configuration and system information" WORKFLOWS+=( dump ) WORKFLOW_dump () { # Do nothing in simulation mode, cf. https://github.com/rear/rear/issues/1939 if is_true "$SIMULATE" ; then LogPrint "${BASH_SOURCE[0]} dumps configuration and system information" return 0 fi function output_variable_assignment () { local variable_name=$1 test -v "$variable_name" || return 1 if test "$DEBUG" ; then # In debug mode show the 'declare -p' output as is (only indented by two spaces): LogUserOutput "$( declare -p $variable_name | sed -e 's/^/ /' )" else # When not in debug mode beautify/simplify the 'declare -p' output # for example for ARRAY=( '' 'this' ' ' 'that' 'something else' ) the 'declare -p' output is # declare -a ARRAY=([0]="" [1]="this" [2]=" " [3]="that" [4]="something else") # which gets beautified/simplified for better readability via 'sed' into # ARRAY=("" "this" " " "that" "something else") # see https://github.com/rear/rear/pull/2014#issuecomment-453503218 # but that 'sed' modification does not work fully fail safe in any case # see https://github.com/rear/rear/pull/2014#issuecomment-453509407 # but it is considered to not cause harm for arrays that are actually used in ReaR # see https://github.com/rear/rear/pull/2014#issuecomment-453996364 LogUserOutput "$( declare -p $variable_name | sed -e 's/^declare -[[:alpha:]-]* / /' -e 's/\([( ]\)\[[[:digit:]]\+\]=/\1/g' )" fi } LogUserOutput "# Begin dumping out configuration and system information:" if [ "$ARCH" != "$REAL_ARCH" ] ; then LogUserOutput "# This is a '$REAL_ARCH' system, compatible with '$ARCH'." fi LogUserOutput "# Configuration tree:" for config in "$ARCH" "$OS" \ "$OS_MASTER_VENDOR" "$OS_MASTER_VENDOR_ARCH" "$OS_MASTER_VENDOR_VERSION" "$OS_MASTER_VENDOR_VERSION_ARCH" \ "$OS_VENDOR" "$OS_VENDOR_ARCH" "$OS_VENDOR_VERSION" "$OS_VENDOR_VERSION_ARCH" ; do test "$config" || continue LogUserOutput " # $config.conf : $( test -s $SHARE_DIR/conf/$config.conf && echo OK || echo missing/empty )" done for config in site local; do LogUserOutput " # $config.conf : $( test -s $CONFIG_DIR/"$config".conf && echo OK || echo missing/empty )" done for config in "${CONFIG_APPEND_FILES_PATHS[@]}"; do LogUserOutput " # $config : OK" done LogUserOutput "# System definition:" for variable_name in "ARCH" "OS" \ "OS_MASTER_VENDOR" "OS_MASTER_VERSION" "OS_MASTER_VENDOR_ARCH" "OS_MASTER_VENDOR_VERSION" "OS_MASTER_VENDOR_VERSION_ARCH" \ "OS_VENDOR" "OS_VERSION" "OS_VENDOR_ARCH" "OS_VENDOR_VERSION" "OS_VENDOR_VERSION_ARCH" ; do output_variable_assignment $variable_name done LogUserOutput "# Backup with $BACKUP:" # Output all $BACKUP_* config variable values e.g. for BACKUP=NETFS as something like # NETFS_CONFIG_STRING="string of words" # or when it is an array variable than as # NETFS_CONFIG_ARRAY=("first element" "second element" ... ) for variable_name in $( eval echo '${!'"$BACKUP"'_*}' ) ; do # The command substitution for the list of items in the above 'for' loop evaluates # to all $BACKUP_* config variable names e.g. for BACKUP=NETFS to something like: # ++ eval echo '${!NETFS_*}' # +++ echo NETFS_CONFIG_STRING NETFS_CONFIG_ARRAY ... output_variable_assignment $variable_name done # Output all BACKUP_* config variable values e.g. as something like # BACKUP_CONFIG_STRING="string of words" # or when it is an array variable than as # BACKUP_CONFIG_ARRAY=("first element" "second element" ... ) for variable_name in $( eval echo '${!BACKUP_*}' ) ; do case $variable_name in (BACKUP_PROG*) ;; (*) output_variable_assignment $variable_name ;; esac done case "$BACKUP" in (NETFS) LogUserOutput "# Backup program is '$BACKUP_PROG':" # Output all BACKUP_PROG_* config variable values e.g. as something like # BACKUP_PROG_STRING="string of words" # or when it is an array variable than as # BACKUP_PROG_ARRAY=("first element" "second element" ... ) for variable_name in $( eval echo '${!BACKUP_PROG_*}' ) ; do output_variable_assignment $variable_name done ;; esac LogUserOutput "# Output to $OUTPUT:" # Output all $OUTPUT_* config variable values e.g. for OUTPUT=ISO as something like # ISO_CONFIG_STRING="string of words" # or when it is an array variable than as # ISO_CONFIG_ARRAY=("first element" "second element" ... ) # and output all OUTPUT_* config variable values e.g. as something like # OUTPUT_CONFIG_STRING="string of words" # or when it is an array variable than as # OUTPUT_CONFIG_ARRAY=("first element" "second element" ... ) # and finally output the RESULT_MAILTO config variable value: for variable_name in $( eval echo '${!'"$OUTPUT"'_*}' '${!OUTPUT_*}' ) RESULT_MAILTO ; do output_variable_assignment $variable_name done LogUserOutput "# Validation status:" validation_file="$SHARE_DIR/lib/validated/$OS_VENDOR_VERSION_ARCH.txt" LogUserOutput " # $validation_file : $( test -s $validation_file && echo OK || echo missing/empty )" if test -s "$validation_file" ; then LogUserOutput " # Your system is validated with the following details:" while read -r ; do LogUserOutput " # $REPLY" done <"$validation_file" else LogUserOutput " # Your system is not yet validated. Please carefully check all functions" LogUserOutput " # and create a validation record with '$PROGRAM validate'. This will help others" LogUserOutput " # to know about the validation status of $PRODUCT on this system." # Show a hint when there is no OS_VENDOR_VERSION_ARCH.txt but OS_MASTER_VENDOR_VERSION_ARCH.txt exists: validation_file="$SHARE_DIR/lib/validated/$OS_MASTER_VENDOR_VERSION_ARCH.txt" if test -s "$validation_file" ; then LogUserOutput " # $validation_file : OK" LogUserOutput " # Your system is derived from $OS_MASTER_VENDOR_VERSION which is validated:" while read -r ; do LogUserOutput " # $REPLY" done <"$validation_file" fi fi LogUserOutput "# End of dump configuration and system information." }
.
Edit
..
Edit
.shellcheckrc
Edit
_input-output-functions.sh
Edit
array-functions.sh
Edit
authtoken-functions.sh
Edit
bareos-functions.sh
Edit
bootloader-functions.sh
Edit
borg-functions.sh
Edit
checklayout-workflow.sh
Edit
columns-functions.sh
Edit
config-functions.sh
Edit
drlm-functions.sh
Edit
dump-workflow.sh
Edit
filesystems-functions.sh
Edit
finalizeonly-workflow.sh
Edit
format-workflow.sh
Edit
framework-functions.sh
Edit
global-functions.sh
Edit
help-workflow.sh
Edit
hp_raid-functions.sh
Edit
layout-functions.sh
Edit
layoutonly-workflow.sh
Edit
linux-functions.sh
Edit
mail-functions.sh
Edit
mkbackup-workflow.sh
Edit
mkbackuponly-workflow.sh
Edit
mkboot-workflow.sh
Edit
mkopalpba-workflow.sh
Edit
mkrescue-functions.sh
Edit
mkrescue-workflow.sh
Edit
mountonly-workflow.sh
Edit
network-functions.sh
Edit
opal-functions.sh
Edit
opaladmin-workflow.sh
Edit
output-functions.sh
Edit
progresssubsystem.nosh
Edit
rear-shell.bashrc
Edit
recover-workflow.sh
Edit
restoreonly-workflow.sh
Edit
rsync-functions.sh
Edit
savelayout-workflow.sh
Edit
serial-functions.sh
Edit
sesam-functions.sh
Edit
shell-workflow.sh
Edit
udev-workflow.sh
Edit
uefi-functions.sh
Edit
validate-workflow.sh
Edit
validated
Edit
write-protect-functions.sh
Edit