mirror of
https://github.com/hassio-addons/bashio.git
synced 2025-05-06 20:11:24 +00:00
67 lines
3 KiB
Bash
67 lines
3 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.
|
|
# ==============================================================================
|
|
|
|
# Defaults
|
|
readonly __BASHIO_DEFAULT_LOG_LEVEL=5 # Defaults to INFO
|
|
readonly __BASHIO_DEFAULT_LOG_FORMAT="[{TIMESTAMP}] {LEVEL}: {MESSAGE}"
|
|
readonly __BASHIO_DEFAULT_LOG_TIMESTAMP="%T"
|
|
readonly __BASHIO_DEFAULT_HASSIO_API="http://hassio"
|
|
readonly __BASHIO_DEFAULT_HASSIO_TOKEN=""
|
|
readonly __BASHIO_DEFAULT_ADDON_CONFIG="/data/options.json"
|
|
readonly __BASHIO_DEFAULT_HIBP_ENDPOINT="https://api.pwnedpasswords.com/range"
|
|
readonly __BASHIO_DEFAULT_CACHE_DIR="/dev/shm/bashio"
|
|
readonly __BASHIO_DEFAULT_SECRETS="/config/secrets.yaml"
|
|
|
|
# Exit codes
|
|
readonly __BASHIO_EXIT_OK=0 # Successful termination
|
|
readonly __BASHIO_EXIT_NOK=1 # Termination with errors
|
|
|
|
# Log levels
|
|
readonly __BASHIO_LOG_LEVEL_ALL=8
|
|
readonly __BASHIO_LOG_LEVEL_DEBUG=6
|
|
readonly __BASHIO_LOG_LEVEL_ERROR=2
|
|
readonly __BASHIO_LOG_LEVEL_FATAL=1
|
|
readonly __BASHIO_LOG_LEVEL_INFO=5
|
|
readonly __BASHIO_LOG_LEVEL_NOTICE=4
|
|
readonly __BASHIO_LOG_LEVEL_OFF=0
|
|
readonly __BASHIO_LOG_LEVEL_TRACE=7
|
|
readonly __BASHIO_LOG_LEVEL_WARNING=3
|
|
readonly -A __BASHIO_LOG_LEVELS=(
|
|
[${__BASHIO_LOG_LEVEL_OFF}]="OFF"
|
|
[${__BASHIO_LOG_LEVEL_FATAL}]="FATAL"
|
|
[${__BASHIO_LOG_LEVEL_ERROR}]="ERROR"
|
|
[${__BASHIO_LOG_LEVEL_WARNING}]="WARNING"
|
|
[${__BASHIO_LOG_LEVEL_NOTICE}]="NOTICE"
|
|
[${__BASHIO_LOG_LEVEL_INFO}]="INFO"
|
|
[${__BASHIO_LOG_LEVEL_DEBUG}]="DEBUG"
|
|
[${__BASHIO_LOG_LEVEL_TRACE}]="TRACE"
|
|
[${__BASHIO_LOG_LEVEL_ALL}]="ALL"
|
|
)
|
|
|
|
# Colors
|
|
readonly __BASHIO_COLORS_ESCAPE="\033[";
|
|
readonly __BASHIO_COLORS_RESET="${__BASHIO_COLORS_ESCAPE}0m"
|
|
readonly __BASHIO_COLORS_DEFAULT="${__BASHIO_COLORS_ESCAPE}39m"
|
|
readonly __BASHIO_COLORS_BLACK="${__BASHIO_COLORS_ESCAPE}30m"
|
|
readonly __BASHIO_COLORS_RED="${__BASHIO_COLORS_ESCAPE}31m"
|
|
readonly __BASHIO_COLORS_GREEN="${__BASHIO_COLORS_ESCAPE}32m"
|
|
readonly __BASHIO_COLORS_YELLOW="${__BASHIO_COLORS_ESCAPE}33m"
|
|
readonly __BASHIO_COLORS_BLUE="${__BASHIO_COLORS_ESCAPE}34m"
|
|
readonly __BASHIO_COLORS_MAGENTA="${__BASHIO_COLORS_ESCAPE}35m"
|
|
readonly __BASHIO_COLORS_CYAN="${__BASHIO_COLORS_ESCAPE}36m"
|
|
readonly __BASHIO_COLORS_LIGHT_GRAY="${__BASHIO_COLORS_ESCAPE}37m"
|
|
readonly __BASHIO_COLORS_BG_DEFAULT="${__BASHIO_COLORS_ESCAPE}49m"
|
|
readonly __BASHIO_COLORS_BG_BLACK="${__BASHIO_COLORS_ESCAPE}40m"
|
|
readonly __BASHIO_COLORS_BG_RED="${__BASHIO_COLORS_ESCAPE}41m"
|
|
readonly __BASHIO_COLORS_BG_GREEN="${__BASHIO_COLORS_ESCAPE}42m"
|
|
readonly __BASHIO_COLORS_BG_YELLOW="${__BASHIO_COLORS_ESCAPE}43m"
|
|
readonly __BASHIO_COLORS_BG_BLUE="${__BASHIO_COLORS_ESCAPE}44m"
|
|
readonly __BASHIO_COLORS_BG_MAGENTA="${__BASHIO_COLORS_ESCAPE}45m"
|
|
readonly __BASHIO_COLORS_BG_CYAN="${__BASHIO_COLORS_ESCAPE}46m"
|
|
readonly __BASHIO_COLORS_BG_WHITE="${__BASHIO_COLORS_ESCAPE}47m"
|