feat: Move is_installed() and is_function_set() to common.sh

This commit is contained in:
ge 2022-05-19 08:39:44 +03:00
parent 9ed6528911
commit cfc88ae3c5
2 changed files with 26 additions and 12 deletions

View File

@ -54,7 +54,7 @@ log() {
} }
err() { err() {
# Handle error. Print errors to STDERR, log, process # Handle errors. Print errors to STDERR, log, process
# and exit from script. # and exit from script.
# #
# Usage: err [-eao] MESSAGE # Usage: err [-eao] MESSAGE
@ -95,6 +95,7 @@ err() {
# Run user defined function on_error() # Run user defined function on_error()
if [ "$onerr" ]; then if [ "$onerr" ]; then
if is_function_set on_error; then if is_function_set on_error; then
echo -e "Run \e[1mon_error()\e[0m ..." | log -p
on_error on_error
fi fi
fi fi
@ -118,3 +119,26 @@ try() {
err -aeo "Check $__log_file log for details." err -aeo "Check $__log_file log for details."
fi fi
} }
is_installed() {
# Check if the program is installed.
# See good answer: https://stackoverflow.com/a/677212
#
# Usage: is_installed COMMAND
if ! command -v "$1" >/dev/null 2>&1; then
echo "Error: Command $1 not found." \
"Please install $1 or check your PATH if it's actually installed." >&2
exit 1
fi
}
is_function_set() {
# Test function is set or not. Return exit code.
# Useful with 'if' statement.
#
# Usage: is_function_set FUNCTION
declare -F -- "$1" > /dev/null
return "$?"
}

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# script.sh - utilitary functions. # source.sh - source and validate scripts.
# Copyright (c) 2022 ge <https://nixhacks.net/> # Copyright (c) 2022 ge <https://nixhacks.net/>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
@ -120,13 +120,3 @@ source_script() {
echo Error: $__user_script: targets array is not set >&2; exit 1 echo Error: $__user_script: targets array is not set >&2; exit 1
fi fi
} }
is_function_set() {
# Test function is set or not. Return exit code.
# Useful with 'if' statement.
#
# Usage: is_function_set FUNCTION
declare -F -- "$1" > /dev/null
return "$?"
}