82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
# set -x 
 | 
						|
 | 
						|
source ./log_helpers
 | 
						|
 | 
						|
if [ "${general_utils_sourced:-1}" = "1" ]; then    # include only once
 | 
						|
    readonly general_utils_sourced=${BASH_SOURCE[0]}
 | 
						|
 | 
						|
    # compare two strings
 | 
						|
    equal () {
 | 
						|
        case "$1" in
 | 
						|
            "$2")   
 | 
						|
                return 0
 | 
						|
                ;;
 | 
						|
        esac
 | 
						|
        return 1    # they don't match
 | 
						|
    }
 | 
						|
 | 
						|
    # check if second string is contained in first string
 | 
						|
    contains () {
 | 
						|
        if grep -qE "$2" <<< $1; then
 | 
						|
            return 0
 | 
						|
        fi
 | 
						|
        return 1    # not contained
 | 
						|
    }
 | 
						|
 | 
						|
    exec_process_substitution () {
 | 
						|
        local func="${FUNCNAME[0]}"
 | 
						|
        log_debug "$func:${LINENO} exec-ing [$*]"
 | 
						|
 | 
						|
        exec {fd}< <(eval "$@")
 | 
						|
 | 
						|
        local __result_code=$?
 | 
						|
        local ps_pid=$!  # remember pid of process substitution
 | 
						|
 | 
						|
        local __result=""
 | 
						|
        while read __tmp <&$fd; do
 | 
						|
            if ! [ -z "$__tmp" ]; then
 | 
						|
                __result="${__result}$__tmp"
 | 
						|
            fi
 | 
						|
        done
 | 
						|
        
 | 
						|
        exec {fd}>&-    # close fd (i.e. process substitution)
 | 
						|
        wait $ps_pid    # wait for the subshell to finish
 | 
						|
 | 
						|
        __result=${__result//[$'\r\n\t']/ } # remove \r\n\t from __result
 | 
						|
 | 
						|
        log_debug "$func:${LINENO} result=$__result"
 | 
						|
        printf '%s' "$__result"
 | 
						|
        return $__result_code
 | 
						|
    }
 | 
						|
 | 
						|
    usage () {
 | 
						|
        echo "Usage: $PROGRAM [--file config] [--?] [--help] [--version] [--dbg]" 
 | 
						|
        # UpdateController.conf"
 | 
						|
    }
 | 
						|
 | 
						|
    usage_and_exit () {
 | 
						|
        usage
 | 
						|
        exit $1
 | 
						|
    }
 | 
						|
 | 
						|
    version () {
 | 
						|
        echo "$PROGRAM version $VERSION"
 | 
						|
    }
 | 
						|
 | 
						|
    error () {
 | 
						|
        echo "$@" 1>&2
 | 
						|
        usage_and_exit 1
 | 
						|
    }
 | 
						|
 | 
						|
    alert () {
 | 
						|
        # usage: alert <$?> <object>
 | 
						|
        if [ "$1" ne 0 ]; then
 | 
						|
            echo "WARNING: $2 did not complete successfully." >&2
 | 
						|
            exit 1
 | 
						|
        else
 | 
						|
            echo "INFO: $2 completed successfully" >&2
 | 
						|
        fi
 | 
						|
    }
 | 
						|
fi
 |