mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-25 23:30:08 +00:00
Fix issues with special characters when running mvn
Setting the locale to C will stabilize sed, so it won't stop processing the mvn output when it encounters invalid characters (like binary data) This makes it also more viable to add the `alias mvn='mvn-color`, as the coloring is less obtrusive, and there won't be any issues with sed breaking because of an invalid character inside the stream
This commit is contained in:
parent
e30a1243dc
commit
96798c42f0
1 changed files with 7 additions and 5 deletions
|
@ -24,16 +24,18 @@ export RESET_FORMATTING=`tput sgr0`
|
||||||
# Wrapper function for Maven's mvn command.
|
# Wrapper function for Maven's mvn command.
|
||||||
mvn-color()
|
mvn-color()
|
||||||
{
|
{
|
||||||
# Filter mvn output using sed
|
(
|
||||||
mvn $@ | sed -e "s/\(\[INFO\]\ \-.*\)/${TEXT_BLUE}${BOLD}\1/g" \
|
# Filter mvn output using sed. Before filtering set the locale to C, so invalid characters won't break some sed implementations
|
||||||
-e "s/\(\[INFO\]\ \[.*\)/${RESET_FORMATTING}${BOLD}\1${RESET_FORMATTING}/g" \
|
unset LANG
|
||||||
|
LC_CTYPE=C mvn $@ | sed -e "s/\(\[INFO\]\)\(.*\)/${TEXT_BLUE}${BOLD}\1${RESET_FORMATTING}\2/g" \
|
||||||
-e "s/\(\[INFO\]\ BUILD SUCCESSFUL\)/${BOLD}${TEXT_GREEN}\1${RESET_FORMATTING}/g" \
|
-e "s/\(\[INFO\]\ BUILD SUCCESSFUL\)/${BOLD}${TEXT_GREEN}\1${RESET_FORMATTING}/g" \
|
||||||
-e "s/\(\[WARNING\].*\)/${BOLD}${TEXT_YELLOW}\1${RESET_FORMATTING}/g" \
|
-e "s/\(\[WARNING\]\)\(.*\)/${BOLD}${TEXT_YELLOW}\1${RESET_FORMATTING}\2/g" \
|
||||||
-e "s/\(\[ERROR\].*\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}/g" \
|
-e "s/\(\[ERROR\]\)\(.*\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}\2/g" \
|
||||||
-e "s/Tests run: \([^,]*\), Failures: \([^,]*\), Errors: \([^,]*\), Skipped: \([^,]*\)/${BOLD}${TEXT_GREEN}Tests run: \1${RESET_FORMATTING}, Failures: ${BOLD}${TEXT_RED}\2${RESET_FORMATTING}, Errors: ${BOLD}${TEXT_RED}\3${RESET_FORMATTING}, Skipped: ${BOLD}${TEXT_YELLOW}\4${RESET_FORMATTING}/g"
|
-e "s/Tests run: \([^,]*\), Failures: \([^,]*\), Errors: \([^,]*\), Skipped: \([^,]*\)/${BOLD}${TEXT_GREEN}Tests run: \1${RESET_FORMATTING}, Failures: ${BOLD}${TEXT_RED}\2${RESET_FORMATTING}, Errors: ${BOLD}${TEXT_RED}\3${RESET_FORMATTING}, Skipped: ${BOLD}${TEXT_YELLOW}\4${RESET_FORMATTING}/g"
|
||||||
|
|
||||||
# Make sure formatting is reset
|
# Make sure formatting is reset
|
||||||
echo -ne ${RESET_FORMATTING}
|
echo -ne ${RESET_FORMATTING}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
# Override the mvn command with the colorized one.
|
# Override the mvn command with the colorized one.
|
||||||
|
|
Loading…
Reference in a new issue