yage
3fe01a7263
===================================================================== 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
66 lines
1.4 KiB
Bash
66 lines
1.4 KiB
Bash
PRINT() {
|
|
local MESSAGE
|
|
local LAST_LINE_END='\n'
|
|
local STDERR=1
|
|
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 $_S
|
|
done
|
|
|
|
[ $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'
|
|
|
|
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
|
|
|
|
|
|
|
|
[[ $STDERR -eq 1 ]] && printf -- "$STYLED_MESSAGE" >&2
|
|
[[ $STDOUT -eq 1 ]] && printf -- "$STYLED_MESSAGE"
|
|
|
|
return 0
|
|
}
|