bashio/lib/exit.sh
2019-03-14 17:14:31 +01:00

89 lines
2.8 KiB
Bash

#!/usr/bin/env bash
# ==============================================================================
# Community Hass.io Add-ons: Bashio
# Bashio is an bash function library for use with Hass.io add-ons.
#
# It contains a set of commonly used operations and can be used
# to be included in add-on scripts to reduce code duplication across add-ons.
# ==============================================================================
# ------------------------------------------------------------------------------
# Exit the script with as failed with an optional error message.
#
# Arguments:
# $1 Error message (optional)
# ------------------------------------------------------------------------------
function bashio::exit.nok() {
local message=${1:-}
bashio::log.trace "${FUNCNAME[0]}:" "$@"
if bashio::var.has_value "${message}"; then
bashio::log.fatal "${message}"
fi
exit "${__BASHIO_EXIT_NOK}"
}
# ------------------------------------------------------------------------------
# Exit the script when given value is false, with an optional error message.
#
# Arguments:
# $1 Value to check if false
# $2 Error message (optional)
# ------------------------------------------------------------------------------
function bashio::exit.die_if_false() {
local value=${1:-}
local message=${2:-}
bashio::log.trace "${FUNCNAME[0]}:" "$@"
if bashio::var.false "${value}"; then
bashio::exit.nok "${message}"
fi
}
# ------------------------------------------------------------------------------
# Exit the script when given value is true, with an optional error message.
#
# Arguments:
# $1 Value to check if true
# $2 Error message (optional)
# ------------------------------------------------------------------------------
function hass.die_if_true() {
local value=${1:-}
local message=${2:-}
bashio::log.trace "${FUNCNAME[0]}:" "$@"
if bashio::var.true "${value}"; then
bashio::exit.nok "${message}"
fi
}
# ------------------------------------------------------------------------------
# Exit the script when given value is empty, with an optional error message.
#
# Arguments:
# $1 Value to check if true
# $2 Error message (optional)
# ------------------------------------------------------------------------------
function hass.die_if_empty() {
local value=${1:-}
local message=${2:-}
bashio::log.trace "${FUNCNAME[0]}:" "$@"
if bashio::var.is_empty "${value}"; then
bashio::exit.nok "${message}"
fi
}
# ------------------------------------------------------------------------------
# Exit the script nicely.
# ------------------------------------------------------------------------------
function bashio::exit.ok() {
bashio::log.trace "${FUNCNAME[0]}" "$@"
exit "${__BASHIO_EXIT_OK}"
}