diff options
Diffstat (limited to 'tools/lib.bash')
-rw-r--r-- | tools/lib.bash | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/tools/lib.bash b/tools/lib.bash deleted file mode 100644 index 1d73ab2..0000000 --- a/tools/lib.bash +++ /dev/null @@ -1,130 +0,0 @@ -# colored output -# -------------- - -BOLD=$(tput bold) -RST=$(tput sgr0) -RED=$(tput setaf 1) -GREEN=$(tput setaf 2) -YELLOW=$(tput setaf 3) -CYAN=$(tput setaf 6) -VERBOSE= - -echoinfo() { - >&2 echo "${CYAN}$@${RST}" -} - -echoerr() { - >&2 echo "${RED}${BOLD}error:${RST}${RED} $@${RST}" -} - -echowarn() { - >&2 echo "${YELLOW}${BOLD}warning:${RST}${YELLOW} $@${RST}" -} - -die() { - echoerr "$@" - exit 1 -} - -debug() { - if [ -n "$VERBOSE" ]; then - >&2 echo "$@" - fi -} - - -# measuring executing time -# ------------------------ - -__time_started= - -time_start() { - __time_started=$(date +%s) -} - -time_elapsed() { - local fin=$(date +%s) - echo $(( fin - __time_started )) -} - - -# config parsing -# -------------- - -read_config() { - local config_file="$1" - local dst="$2" - - [ -f "$config_file" ] || die "read_config: $config_file: no such file" - - local n=0 - local failed= - local key - local value - - while read line; do - n=$(( n+1 )) - - # skip empty lines or comments - if [ -z "$line" ] || [[ "$line" =~ ^#.* ]]; then - continue - fi - - if [[ $line = *"="* ]]; then - key="${line%%=*}" - value="${line#*=}" - eval "$dst[$key]=\"$value\"" - else - echoerr "config: invalid line $n" - failed=1 - fi - done < <(cat "$config_file") - - [ -z "$failed" ] -} - -check_config() { - local var="$1" - local keys="$2" - - local failed= - - for key in $keys; do - if [ -z "$(eval "echo -n \${$var[$key]}")" ]; then - echoerr "config: ${BOLD}${key}${RST}${RED} is missing" - failed=1 - fi - done - - [ -z "$failed" ] -} - - -# other functions -# --------------- - -installed() { - command -v "$1" > /dev/null - return $? -} - -download() { - local source="$1" - local target="$2" - - if installed curl; then - curl -f -s -o "$target" "$source" - elif installed wget; then - wget -q -O "$target" "$source" - else - die "neither curl nor wget found, can't proceed" - fi -} - -file_in_use() { - [ -n "$(lsof "$1")" ] -} - -file_mtime() { - stat -c %Y "$1" -} |