v1.1.0
===================================================================== Changed environment dependency checker to be more automatic
This commit is contained in:
@ -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 \
|
||||
|
@ -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
|
||||
|
@ -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
29
zsh/utils/utils.zsh
Normal 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
|
||||
}
|
||||
|
||||
#####################################################################
|
Reference in New Issue
Block a user