#!/usr/bin/env bash # -*- coding: utf-8 -*- # region imports source '/usr/lib/rebash/core.sh' core.import exceptions core.import logging type emergency_shell >/dev/null 2>&1 || source /lib/dracut-lib.sh # endregion exceptions.try { logging.set_commands_level debug logging.set_level debug [[ "$SLX_LOG_FILE_PATH" == "" ]] && SLX_LOG_FILE_PATH=/var/log/openslx logging.set_log_file "$SLX_LOG_FILE_PATH" # NOTE: "getarg" raises an exception so deactivate exceptions for now. exceptions.deactivate configuration_file_name="$(getarg slx_configuration_filename=)" if [ -z "$configuration_file_name" ]; then configuration_file_name='config' fi slx_server="$(getarg slxsrv=)" slx_server_base="$(getarg slxbase=)" exceptions.activate logging.info 'Getting configuration file.' IFS_backup="$IFS" IFS=',' for host in ${slx_server}; do logging.info "Trying host \"$host\"." if wget --timeout 5 \ "http://${host}/${slx_server_base}/${configuration_file_name}" \ --output-document '/etc/openslx' then break fi done IFS="$IFS_backup" if [[ ! -e "/etc/openslx" ]]; then logging.warn "Downloading OpenSLX configuration file from any of the servers \"${slx_server}\" at location \"${slx_server_base}/${configuration_file_name}\" failed. Return code: $return_code" exit 1 fi } exceptions.catch { logging.error "$exceptions_last_traceback" emergency_shell "error in ${BASH_SOURCE[0]}" } # region vim modline # vim: set tabstop=4 shiftwidth=4 expandtab: # vim: foldmethod=marker foldmarker=region,endregion: # endregion