v4.4.0
===================================================================== Increased non-scwrypts-runtime compatibility and improved clarity in user environments after sourcing the scwrypts.plugin.zsh. --- New Features ------------------------- - added experimental support for --output json - added 'scwrypts --list-groups' to output the SCWRYPTS_GROUPS value - added 'scwrypts --config' to be `eval`-ed in non-scwrypts-runtime zsh --- Changes ------------------------------ - removed config variables which pertained to old scwrypts - removed deprecated --no-log - cleaned up environment requirements and improved import saftey for scwrypts.plugin.zsh; scwrypts is now *required* on $PATH in order to work - refactored group configuration to match external group configuration (configuration now in scwrypts.scwrypts.zsh rather than zsh/lib/config.group.zsh) - plugins/kubectl now forces an unalias of `f` (for fluxcd) on load - the 'use' command now supports the '-c' short flag for ease of quick use - upgraded max supported python version to 3.12; dropped support for python 3.9 (>3.10 required) - remove old references to SCWRYPTS_ROOT in favour of SCWRYPTS_ROOT__scwrypts - SCWRYPTS_LOG_LEVEL setting is now forwarded when using the SCWRYPTS__RUN meta execution function
This commit is contained in:
@ -1,10 +0,0 @@
|
||||
export SCWRYPTS_ROOT__scwrypts="$SCWRYPTS_ROOT"
|
||||
export SCWRYPTS_LIBRARY_ROOT__scwrypts="$SCWRYPTS_ROOT/zsh/lib"
|
||||
export SCWRYPTS_COLOR__scwrypts='\033[0;32m'
|
||||
|
||||
|
||||
export SCWRYPTS_VIRTUALENV_PATH__scwrypts="$SCWRYPTS_DATA_PATH/virtualenv"
|
||||
[ ! -d "$SCWRYPTS_VIRTUALENV_PATH__scwrypts" ] && mkdir -p "$SCWRYPTS_VIRTUALENV_PATH__scwrypts"
|
||||
|
||||
export SCWRYPTS_PREFERRED_PYTHON_VERSIONS__scwrypts=(3.11 3.10 3.9)
|
||||
export SCWRYPTS_NODE_VERSION__scwrypts=18.0.0
|
@ -25,7 +25,7 @@ export SCWRYPTS_ROOT__scwrypts="$SCWRYPTS_ROOT"
|
||||
|
||||
#####################################################################
|
||||
|
||||
DEFAULT_CONFIG="$SCWRYPTS_ROOT/zsh/lib/config.user.zsh"
|
||||
DEFAULT_CONFIG="$SCWRYPTS_ROOT__scwrypts/zsh/lib/config.user.zsh"
|
||||
source "$DEFAULT_CONFIG"
|
||||
|
||||
USER_CONFIG_OVERRIDES="$SCWRYPTS_CONFIG_PATH/config.zsh"
|
||||
@ -53,11 +53,11 @@ export \
|
||||
SCWRYPTS_OUTPUT_PATH \
|
||||
;
|
||||
|
||||
SCWRYPTS_GROUPS=(scwrypts $(echo $SCWRYPTS_GROUPS | sed 's/\s\+/\n/g' | sort -u))
|
||||
|
||||
source "$SCWRYPTS_ROOT/zsh/lib/config.group.zsh" \
|
||||
source "$SCWRYPTS_ROOT/scwrypts.scwrypts.zsh" \
|
||||
|| FAIL 69 'failed to set up scwrypts group; aborting'
|
||||
|
||||
SCWRYPTS_GROUPS=(scwrypts $(echo $SCWRYPTS_GROUPS | sed 's/\s\+/\n/g' | sort -u | grep -v '^scwrypts$'))
|
||||
|
||||
#####################################################################
|
||||
|
||||
for plugin in $(ls $SCWRYPTS_ROOT__scwrypts/plugins)
|
||||
|
@ -34,7 +34,7 @@ source "${0:a:h}/config.zsh"
|
||||
|
||||
use() {
|
||||
local SCWRYPTS_LIBRARY SCWRYPTS_LIBRARY_ROOT SCWRYPTS_LIBRARY_GROUP
|
||||
local DEFER_ENVIRONMENT_CHECK=1
|
||||
local DEFER_ENVIRONMENT_CHECK=true
|
||||
|
||||
while [[ $# -gt 0 ]]
|
||||
do
|
||||
@ -49,8 +49,8 @@ use() {
|
||||
SCWRYPTS_LIBRARY_ROOT=$2
|
||||
shift 1
|
||||
;;
|
||||
--check-environment )
|
||||
DEFER_ENVIRONMENT_CHECK=0
|
||||
-c | --check-environment )
|
||||
DEFER_ENVIRONMENT_CHECK=false
|
||||
;;
|
||||
* )
|
||||
[ ! $SCWRYPTS_LIBRARY ] \
|
||||
@ -106,7 +106,7 @@ use() {
|
||||
return 1
|
||||
}
|
||||
|
||||
[[ $DEFER_ENVIRONMENT_CHECK -eq 0 ]] && {
|
||||
[[ $DEFER_ENVIRONMENT_CHECK =~ false ]] && {
|
||||
CHECK_ENVIRONMENT || {
|
||||
((IMPORT_ERRORS+=1))
|
||||
ERROR "import error for '$SCWRYPTS_LIBRARY_GROUP/$SCWRYPTS_LIBRARY'"
|
||||
|
@ -12,7 +12,10 @@ SCWRYPTS__RUN() { # context wrapper to run scwrypts within scwrypts
|
||||
local EXIT_CODE=0
|
||||
((SUBSCWRYPT+=1))
|
||||
|
||||
SUBSCWRYPT=$SUBSCWRYPT $SCWRYPTS_ROOT/scwrypts $@
|
||||
SCWRYPTS_LOG_LEVEL=$SCWRYPTS_LOG_LEVEL \
|
||||
SUBSCWRYPT=$SUBSCWRYPT \
|
||||
$SCWRYPTS_ROOT__scwrypts/scwrypts $@
|
||||
|
||||
EXIT_CODE=$?
|
||||
|
||||
((SUBSCWRYPT-=1))
|
||||
|
@ -94,7 +94,7 @@ SCWRYPTS__GET_RUNSTRING() {
|
||||
}
|
||||
|
||||
RUNSTRING="SCWRYPTS_ENV=$ENV_NAME; $RUNSTRING"
|
||||
RUNSTRING="source $SCWRYPTS_ROOT/zsh/lib/import.driver.zsh; $RUNSTRING"
|
||||
RUNSTRING="source $SCWRYPTS_ROOT__scwrypts/zsh/lib/import.driver.zsh; $RUNSTRING"
|
||||
|
||||
local _VIRTUALENV=$(eval echo '$SCWRYPTS_VIRTUALENV_PATH__'$SCWRYPT_GROUP'/$SCWRYPT_TYPE/bin/activate')
|
||||
[ -f $_VIRTUALENV ] && RUNSTRING="source $_VIRTUALENV; $RUNSTRING"
|
||||
|
@ -74,6 +74,8 @@ _VIRTUALENV__GET_PATH() {
|
||||
local ENV_PATH="$(eval echo '$SCWRYPTS_VIRTUALENV_PATH__'$GROUP 2>/dev/null)"
|
||||
[ ! $ENV_PATH ] && ENV_PATH="$SCWRYPTS_VIRTUALENV_PATH__scwrypts"
|
||||
|
||||
mkdir -p "$ENV_PATH/$TYPE" &>/dev/null
|
||||
|
||||
echo $ENV_PATH/$TYPE
|
||||
}
|
||||
|
||||
@ -95,7 +97,7 @@ CREATE_VIRTUALENV__scwrypts__py() {
|
||||
}
|
||||
done
|
||||
[ ! $PYTHON ] && {
|
||||
ERROR 'python>=3.9 not available; skipping python env'
|
||||
ERROR 'python>=3.10 not available; skipping python env'
|
||||
return 1
|
||||
}
|
||||
|
||||
@ -122,7 +124,7 @@ UPDATE_VIRTUALENV__scwrypts__py() {
|
||||
PIP_INSTALL_ARGS+=(--no-cache-dir)
|
||||
PIP_INSTALL_ARGS+=(-r requirements.txt)
|
||||
|
||||
cd "$SCWRYPTS_ROOT/py"
|
||||
cd "$SCWRYPTS_ROOT__scwrypts/py"
|
||||
pip install ${PIP_INSTALL_ARGS[@]}
|
||||
}
|
||||
|
||||
@ -159,7 +161,7 @@ ACTIVATE_VIRTUALENV__scwrypts__zx() {
|
||||
UPDATE_VIRTUALENV__scwrypts__zx() {
|
||||
local NPM_INSTALL_ARGS=()
|
||||
|
||||
cd "$SCWRYPTS_ROOT/zx"
|
||||
cd "$SCWRYPTS_ROOT__scwrypts/zx"
|
||||
npm install ${NPM_INSTALL_ARGS[@]}
|
||||
}
|
||||
|
||||
|
@ -5,34 +5,61 @@ PRINT() {
|
||||
local STDOUT=0
|
||||
|
||||
local LTRIM=1
|
||||
local FORMAT=$SCWRYPTS_OUTPUT_FORMAT
|
||||
local _S
|
||||
while [[ $# -gt 0 ]]
|
||||
do
|
||||
_S=1
|
||||
case $1 in
|
||||
-n | --no-trim-tabs ) LTRIM=0 ;;
|
||||
-x | --no-line-end ) LAST_LINE_END='' ;;
|
||||
-o | --use-stdout ) STDOUT=1; STDERR=0 ;;
|
||||
|
||||
-f | --format ) ((_S+=1)); FORMAT=$2 ;;
|
||||
|
||||
* ) MESSAGE+="$(echo $1) " ;;
|
||||
esac
|
||||
shift 1
|
||||
shift $_S
|
||||
done
|
||||
|
||||
MESSAGE="$(echo "$MESSAGE" | sed 's/%/%%/g')"
|
||||
[ $FORMAT ] || FORMAT=pretty
|
||||
local STYLED_MESSAGE
|
||||
case $FORMAT in
|
||||
pretty )
|
||||
STYLED_MESSAGE="$(echo "$MESSAGE" | sed 's/%/%%/g')"
|
||||
STYLED_MESSAGE="$({
|
||||
printf "${COLOR}"
|
||||
while IFS='' read line
|
||||
do
|
||||
[[ $PREFIX =~ ^[[:space:]]\+$ ]] && printf '\n'
|
||||
|
||||
local STYLED_MESSAGE="$({
|
||||
printf "${COLOR}"
|
||||
while IFS='' read line
|
||||
do
|
||||
[[ $PREFIX =~ ^[[:space:]]\+$ ]] && printf '\n'
|
||||
printf "${PREFIX} : $(echo "$line" | sed 's/^ \+//; s/ \+$//')"
|
||||
|
||||
printf "${PREFIX} : $(echo "$line" | sed 's/^ \+//; s/ \+$//')"
|
||||
PREFIX=$(echo $PREFIX | sed 's/./ /g')
|
||||
done <<< $MESSAGE
|
||||
})"
|
||||
STYLED_MESSAGE="${COLOR}$(echo "$STYLED_MESSAGE" | sed 's/%/%%/g')${__COLOR_RESET}${LAST_LINE_END}"
|
||||
;;
|
||||
json )
|
||||
STYLED_MESSAGE="$(
|
||||
echo '{}' | jq -c ".
|
||||
| .timestamp = \"$(date +%s)\"
|
||||
| .runtime = \"$SCWRYPTS_RUNTIME_ID\"
|
||||
| .status = \"$(echo "$PREFIX" | sed 's/ .*//')\"
|
||||
| .message = $(echo $MESSAGE | sed 's/^\t\+//' | jq -Rs)
|
||||
" | sed 's/\\/\\\\/g'
|
||||
)\n"
|
||||
;;
|
||||
* )
|
||||
echo "ERROR : unsupported format '$FORMAT'" >&2
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
PREFIX=$(echo $PREFIX | sed 's/./ /g')
|
||||
done <<< $MESSAGE
|
||||
})"
|
||||
STYLED_MESSAGE="${COLOR}$(echo "$STYLED_MESSAGE" | sed 's/%/%%/g')${__COLOR_RESET}${LAST_LINE_END}"
|
||||
|
||||
[[ $STDERR -eq 1 ]] && printf $STYLED_MESSAGE >&2
|
||||
[[ $STDOUT -eq 1 ]] && printf $STYLED_MESSAGE
|
||||
|
||||
[[ $STDERR -eq 1 ]] && printf -- "$STYLED_MESSAGE" >&2
|
||||
[[ $STDOUT -eq 1 ]] && printf -- "$STYLED_MESSAGE"
|
||||
|
||||
return 0
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ CHECK_ENVIRONMENT() {
|
||||
$E "environment errors found (see above)\n$ERROR_MESSAGE"
|
||||
}
|
||||
|
||||
[[ $MISSING_ENVIRONMENT_VARIABLES -ne 0 ]] && {
|
||||
[[ $MISSING_ENVIRONMENT_VARIABLES -ne 0 ]] && [[ $__SCWRYPT ]] && {
|
||||
REMINDER "
|
||||
to quickly update missing environment variables, run:
|
||||
'scwrypts zsh/scwrypts/environment/edit'
|
||||
|
Reference in New Issue
Block a user