summaryrefslogblamecommitdiffstats
path: root/builder/modules.d/conf-tgz/hooks/fetch-config-tgz.sh
blob: 263eff753d469b8096eff1666da08819d0e341e6 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

















                                                                          
                                                                

                     






                                                                         











                                                                                                      
#!/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

exceptions.try
{
    logging.set_commands_level debug
    logging.set_level debug
    # NOTE: "getarg" raises an exception so deactivate exceptions for now.
    exceptions.deactivate
    slx_server="$(getarg slxsrv=)"
    slx_server_base="$(getarg slxbase=)"
    exceptions.activate

    logging.info "Download config.tgz from '${slx_server#@}'..."
    IFS_backup="$IFS"
    IFS=','
		for TIMEOUT in 1 1 2 3; do
		  if wget --timeout 5 \
  	         "http://${slx_server#@}/${slx_server_base}/config.tgz" \
    	        --output-document "/etc/config.tgz"; then
    		break
	    fi
		done
    IFS="$IFS_backup"

    if [[ ! -e "/etc/config.tgz" ]]; then
        logging.warn "Downloading 'config.tgz' from '${slx_server}' failed. Return code: $return_code"
        exit 1
    fi
}
exceptions.catch
{
    logging.error "$exceptions_last_traceback"
    emergency_shell "error in ${BASH_SOURCE[0]}"
}