scwrypts/zsh/lib/utils/utils.module.zsh
yage 6f42c9cb16 v3.7.0
=====================================================================

--- New Features -------------------------

- Github Actions integration from 3.7.0 and up!

```yaml
  # try it out in gh actions
  - uses: wrynegade/scwrypts@main
    with:
      version: v3.7.0
      scwrypt: --name hello-world --group scwrypts --type py
      args: --message "hello from github actions ci <3"
```

--- New Scripts --------------------------

zsh/helm )
  smart helm template functions (simply pass a filename)
   - get-template
   - update-dependencies

--- Changes ------------------------------

- CHECK_ENVIRONMENT now uses proper argument parsing

- scwrypts/plugins loaded by setting in config or environment:
   SCWRYPTS_PLUGIN_ENABLED__plugin=1

- SCWRYPTS__GET_PATH_TO_RELATIVE_ARGUMENT was missed in the v2->v3
  refactor and has now been reincluded as SCWRYPTS__GET_REALPATH
2023-11-10 16:32:05 -07:00

90 lines
2.2 KiB
Bash

#####################################################################
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() {
local OPTIONAL=0
while [[ $# -gt 0 ]]
do
case $1 in
--optional ) OPTIONAL=1 ;;
esac
shift 1
done
[[ $OPTIONAL -eq 1 ]] && E=WARNING || E=ERROR
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
}
##########################################
[[ ENVIRONMENT_STATUS -ne 0 ]] && [[ $OPTIONAL -eq 0 ]] && {
ERROR_MESSAGE=$(echo $ERROR_MESSAGE | sed '1d; s/^/ /')
$E "environment errors found (see above)\n$ERROR_MESSAGE"
}
[[ $MISSING_ENVIRONMENT_VARIABLES -ne 0 ]] && {
REMINDER "
to quickly update missing environment variables, run:
'scwrypts zsh/scwrypts/environment/edit'
"
}
[[ $ENVIRONMENT_STATUS -ne 0 ]] && [[ $NO_EXIT -ne 1 ]] && [[ $OPTIONAL -eq 0 ]] && {
exit $ENVIRONMENT_STATUS
}
return $ENVIRONMENT_STATUS
}
CHECK_ENVIRONMENT