diff options
Diffstat (limited to 'builder/modules.d/conf-tgz/hooks/unpack-config-tgz.sh')
-rwxr-xr-x | builder/modules.d/conf-tgz/hooks/unpack-config-tgz.sh | 49 |
1 files changed, 11 insertions, 38 deletions
diff --git a/builder/modules.d/conf-tgz/hooks/unpack-config-tgz.sh b/builder/modules.d/conf-tgz/hooks/unpack-config-tgz.sh index a2d550ce..a0da0cd3 100755 --- a/builder/modules.d/conf-tgz/hooks/unpack-config-tgz.sh +++ b/builder/modules.d/conf-tgz/hooks/unpack-config-tgz.sh @@ -1,9 +1,6 @@ #!/usr/bin/env bash # -*- coding: utf-8 -*- -source '/usr/lib/rebash/core.sh' -core.import exceptions -core.import logging type emergency_shell >/dev/null 2>&1 || source /lib/dracut-lib.sh # tarcopy <source_dir> <target_dir> @@ -19,50 +16,26 @@ tarcopy() { # this module unpacks the config.tgz temporary_extract_directory="$(mktemp -d)" -exceptions.try -{ - exceptions.activate if [[ -e "/etc/config.tgz" ]]; then tar --extract --preserve-permissions \ --file="/etc/config.tgz" \ --directory="$temporary_extract_directory" fi -} -exceptions.catch -{ - logging.error "Failed to extract '/etc/config.tgz' to '$temporary_extract_directory'." - logging.error "$exceptions_last_traceback" -} + warn "Failed to extract '/etc/config.tgz' to '$temporary_extract_directory'." + warn "$exceptions_last_traceback" # extracted to temporary directory, now check for SLX_LOCAL_CONFIGURATION + source "/etc/openslx" if [[ -n "$SLX_LOCAL_CONFIGURATION" ]]; then - exceptions.try - { - exceptions.activate - if [[ ! -d "${temporary_extract_directory}/openslx-configs/${SLX_LOCAL_CONFIGURATION}" ]]; then - logging.warn "SLX_LOCAL_CONFIGURATION is set but no corresponding folder found in '/etc/config.tgz'. Ignoring..." - else - tarcopy "${temporary_extract_directory}/openslx-configs/${SLX_LOCAL_CONFIGURATION}" "${temporary_extract_directory}" - fi - } - exceptions.catch - { - # errors here are not critical, so no emergency shell - logging.error "Failed to merge local configuration files for '$SLX_LOCAL_CONFIGURATION'." - logging.error "$exceptions_last_traceback" - } + if [[ ! -d "${temporary_extract_directory}/openslx-configs/${SLX_LOCAL_CONFIGURATION}" ]]; then + warn "SLX_LOCAL_CONFIGURATION is set but no corresponding folder found in '/etc/config.tgz'. Ignoring..." + else + tarcopy "${temporary_extract_directory}/openslx-configs/${SLX_LOCAL_CONFIGURATION}" "${temporary_extract_directory}" + fi fi -# now just copy everything from the temporary_extract_directory to the future root -exceptions.try -{ - exceptions.activate # purge openslx-configs/ rm -rf "${temporary_extract_directory}/openslx-configs" tarcopy "${temporary_extract_directory}" "$NEWROOT" -} -exceptions.catch -{ - # errors here are not critical, so no emergency shell - logging.error "Failed to copy extracted configuration files to '$NEWROOT'." - logging.error "$exceptions_last_traceback" -} + + + # TODO error handling |