#!/bin/bash

# Error handling
set -e

# For styling/colorizing output
txtbld=$(tput bold)
txtgreen=${txtbld}$(tput setaf 2)
txtred=${txtbld}$(tput setaf 1)
txtwhite=${txtbld}$(tput setaf 7)

# Dependency check
function dependencycheck()
{
    numdependencies="$#"
    dependencies=("$@")
    missingdependencies=0

    for ((i = 0; i < numdependencies; i++)) ; do
        if ! command -v "${dependencies[$i]}" &> /dev/null ; then
            echo "${txtred} ✗ dependency not met: ${dependencies[$i]}${txtwhite}"
            missingdependencies=$((missingdependencies+1))
        else
            echo "${txtgreen}  dependency met: ${dependencies[$i]}${txtwhite}"
        fi
    done

    if [ $missingdependencies -gt 0 ] ; then
        exit 1
    # comment out if used in other scripts
    else
        exit 0
    fi
}

# invoke function comment out if sourced
dependencycheck "$@"

# Better simple version from tomocafe (see upnup script)
# For use within scripts, not on its own

#error() {
    # printf "error: %s\n" "$1" 1>&2
    # ${2:+exit $2}
# }

# dependencycheck() {
    # local dep missingdependencies=0
    # for dep in "$@" ; do
        # if ! command -v "$dep" &> /dev/null ; then
            # error "dependency not met: $dep"
        # fi
    # done
    # if [[ $missingdependencies -gt 0 ]] ; then
        # exit 1
    # fi
# }
