2023-02-22 01:44:27 +00:00
|
|
|
#####################################################################
|
|
|
|
|
|
|
|
DEPENDENCIES+=(fzf) # (extensible) list of PATH dependencies
|
|
|
|
REQUIRED_ENV+=() # (extensible) list of required environment variables
|
|
|
|
|
|
|
|
#####################################################################
|
|
|
|
|
|
|
|
source ${0:a:h}/colors.zsh
|
|
|
|
source ${0:a:h}/io.zsh
|
|
|
|
source ${0:a:h}/os.zsh
|
|
|
|
source ${0:a:h}/credits.zsh
|
|
|
|
|
|
|
|
#####################################################################
|
|
|
|
|
|
|
|
source ${0:a:h}/dependencies.zsh
|
|
|
|
source ${0:a:h}/environment.zsh
|
|
|
|
|
|
|
|
#####################################################################
|
|
|
|
|
|
|
|
CHECK_ENVIRONMENT() {
|
2023-08-24 23:09:30 +00:00
|
|
|
local OPTIONAL=0
|
|
|
|
|
2023-10-30 20:23:23 +00:00
|
|
|
while [[ $# -gt 0 ]]
|
|
|
|
do
|
|
|
|
case $1 in
|
|
|
|
--optional ) OPTIONAL=1 ;;
|
|
|
|
esac
|
|
|
|
shift 1
|
|
|
|
done
|
|
|
|
|
|
|
|
[[ $OPTIONAL -eq 1 ]] && E=WARNING || E=ERROR
|
2023-08-24 23:09:30 +00:00
|
|
|
|
2023-02-22 01:44:27 +00:00
|
|
|
local ENVIRONMENT_STATUS=0
|
|
|
|
|
|
|
|
__CHECK_DEPENDENCIES $DEPENDENCIES
|
|
|
|
local MISSING_DEPENDENCIES=$?
|
|
|
|
|
|
|
|
__CHECK_REQUIRED_ENV $REQUIRED_ENV
|
|
|
|
local MISSING_ENVIRONMENT_VARIABLES=$?
|
|
|
|
|
|
|
|
##########################################
|
|
|
|
|
|
|
|
local ERROR_MESSAGE=""
|
|
|
|
[[ $MISSING_DEPENDENCIES -ne 0 ]] && {
|
|
|
|
((ENVIRONMENT_STATUS+=1))
|
|
|
|
ERROR_MESSAGE+="\n$MISSING_DEPENDENCIES missing "
|
|
|
|
|
|
|
|
[[ $MISSING_DEPENDENCIES -eq 1 ]] \
|
|
|
|
&& ERROR_MESSAGE+='dependency' \
|
|
|
|
|| ERROR_MESSAGE+='dependencies' \
|
|
|
|
;
|
|
|
|
}
|
|
|
|
|
|
|
|
[[ $MISSING_ENVIRONMENT_VARIABLES -ne 0 ]] && {
|
|
|
|
((ENVIRONMENT_STATUS+=2))
|
|
|
|
ERROR_MESSAGE+="\n$MISSING_ENVIRONMENT_VARIABLES missing environment variable"
|
|
|
|
|
|
|
|
[[ $MISSING_ENVIRONMENT_VARIABLES -gt 1 ]] && ERROR_MESSAGE+=s
|
|
|
|
}
|
|
|
|
|
|
|
|
[ $IMPORT_ERRORS ] && [[ $IMPORT_ERRORS -ne 0 ]] && {
|
|
|
|
((ENVIRONMENT_STATUS+=4))
|
|
|
|
ERROR_MESSAGE+="\n$IMPORT_ERRORS import error"
|
|
|
|
|
|
|
|
[[ $IMPORT_ERRORS -gt 1 ]] && ERROR_MESSAGE+=s
|
|
|
|
}
|
|
|
|
|
|
|
|
##########################################
|
|
|
|
|
2023-08-24 23:09:30 +00:00
|
|
|
[[ ENVIRONMENT_STATUS -ne 0 ]] && [[ $OPTIONAL -eq 0 ]] && {
|
2023-02-22 01:44:27 +00:00
|
|
|
ERROR_MESSAGE=$(echo $ERROR_MESSAGE | sed '1d; s/^/ /')
|
2023-08-24 23:09:30 +00:00
|
|
|
$E "environment errors found (see above)\n$ERROR_MESSAGE"
|
2023-02-22 01:44:27 +00:00
|
|
|
}
|
|
|
|
|
2024-05-08 05:11:21 +00:00
|
|
|
[[ $MISSING_ENVIRONMENT_VARIABLES -ne 0 ]] && [[ $__SCWRYPT ]] && {
|
2023-02-22 01:44:27 +00:00
|
|
|
REMINDER "
|
|
|
|
to quickly update missing environment variables, run:
|
|
|
|
'scwrypts zsh/scwrypts/environment/edit'
|
|
|
|
"
|
|
|
|
}
|
|
|
|
|
2023-08-24 23:09:30 +00:00
|
|
|
[[ $ENVIRONMENT_STATUS -ne 0 ]] && [[ $NO_EXIT -ne 1 ]] && [[ $OPTIONAL -eq 0 ]] && {
|
2023-02-22 01:44:27 +00:00
|
|
|
exit $ENVIRONMENT_STATUS
|
|
|
|
}
|
2023-08-24 23:09:30 +00:00
|
|
|
|
|
|
|
return $ENVIRONMENT_STATUS
|
2023-02-22 01:44:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
CHECK_ENVIRONMENT
|