=====================================================================

Changed environment dependency checker to be more automatic
This commit is contained in:
2022-05-24 10:26:05 -06:00
parent bffd64051c
commit 2dcf94199b
36 changed files with 124 additions and 144 deletions

View File

@ -1,4 +1,7 @@
__CREDITS() {
# only applicable within scwrypts ("credits" pulled from README files)
[ ! $SCWRYPTS_ROOT ] && return 0
local COMMAND="$1"
cd $SCWRYPTS_ROOT
cat ./**/README.md \

View File

@ -1,19 +1,15 @@
__CHECK_DEPENDENCIES() {
local DEPENDENCY
for DEPENDENCY in $*
do
__CHECK_DEPENDENCY $DEPENDENCY || ((__DEPENDENCY_ERROR+=1))
done
local DEP ERROR=0
__CHECK_COREUTILS || ((__DEPENDENCY_ERROR+=$?))
for DEP in $*; do __CHECK_DEPENDENCY $DEP || ((ERROR+=1)); done
__CHECK_COREUTILS || ((ERROR+=$?))
return $__DEPENDENCY_ERROR
return $ERROR
}
__CHECK_DEPENDENCY() {
local DEPENDENCY="$1"
[ ! $DEPENDENCY ] && return 1
command -v $DEPENDENCY >/dev/null 2>&1 || {
__ERROR "'$1' required but not installed. $(__CREDITS $1)"
return 1

View File

@ -1,14 +1,7 @@
__CHECK_ENV_VARS() {
local OPTIONAL=0
[[ $1 =~ ^--optional$ ]] && { shift 1; OPTIONAL=1; }
local VAR_NAME
for VAR_NAME in $*
do
__CHECK_ENV_VAR $VAR_NAME $OPTIONAL || ((__ENVIRONMENT_ERROR+=1))
done
return $__ENVIRONMENT_ERROR
__CHECK_REQUIRED_ENV() {
local VAR ERROR=0
for VAR in $*; do __CHECK_ENV_VAR $VAR_NAME || ((ERROR+=1)); done
return $ERROR
}
__CHECK_ENV_VAR() {

29
zsh/utils/utils.zsh Normal file
View File

@ -0,0 +1,29 @@
#####################################################################
_DEPENDENCIES+=(fzf) # (extensible) list of PATH dependencies
_REQUIRED_ENV+=() # (extensible) list of required environment variables
#####################################################################
source ${0:a:h}/io.zsh
source ${0:a:h}/os.zsh
source ${0:a:h}/credits.zsh
#####################################################################
IMPORT_ERROR=0
source ${0:a:h}/dependencies.zsh
_DEPENDENCIES=($(echo $_DEPENDENCIES | sort -u))
__CHECK_DEPENDENCIES $_DEPENDENCIES || ((IMPORT_ERROR+=$?))
source ${0:a:h}/environment.zsh
_REQUIRED_ENV=($(echo $__CHECK_REQUIRED_ENV | sort -u))
__CHECK_REQUIRED_ENV $_REQUIRED_ENV || ((IMPORT_ERROR+=$?))
[[ $IMPORT_ERROR -eq 0 ]] || {
__ERROR "encountered $IMPORT_ERROR import error(s)"
return 1
}
#####################################################################