diff options
Diffstat (limited to 'bin/colormake')
-rwxr-xr-x | bin/colormake | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/bin/colormake b/bin/colormake new file mode 100755 index 0000000..c8f352d --- /dev/null +++ b/bin/colormake @@ -0,0 +1,40 @@ +#!/bin/bash + +# Colored Make 2016.1.21 +# Copyright (c) 2014 Renato Silva +# Licensed under BSD +# https://github.com/renatosilva/colormake + +# Enable 256 colors for MinTTY in MSYS2 +if [[ "$MSYSCON" = mintty* && "$TERM" = *256color* ]]; then + red="\e[38;05;9m" + green="\e[38;05;76m" + blue="\e[38;05;74m" + cyan="\e[0;36m" + purple="\e[38;05;165m" + yellow="\e[0;33m" + gray="\e[38;05;244m" +else + red="\e[1;31m" + green="\e[1;32m" + blue="\e[1;34m" + cyan="\e[1;36m" + purple="\e[1;35m" + yellow="\e[1;33m" + gray="\e[1;30m" +fi +normal="\e[0m" + +# Errors, warnings, notes and compiler recipes +error="s/(^error|^.*[^a-z]error:)/$(printf $red)\\1$(printf $normal)/i" +warning="s/(^warning|^.*[^a-z]warning:)/$(printf $yellow)\\1$(printf $normal)/i" +make="s/^make(\[[0-9]+\])?:/$(printf $blue)make\\1:$(printf $normal)/" +compiler_recipe="s/^((gcc|g\+\+|clang)(.exe)? .*)/$(printf $gray)\\1$(printf $normal)/" + +if [[ $(uname -or) != 1.*Msys ]]; then + command "${COLORMAKE_COMMAND:-make}" "$@" 2> >(sed -ru -e "$warning" -e "$error" -e "$make" -e "$compiler_recipe") \ + > >(sed -ru -e "$warning" -e "$error" -e "$make" -e "$compiler_recipe") +else + # MinGW MSYS does not support process substitution + command "${COLORMAKE_COMMAND:-make}" "$@" 2>&1 | sed -ru -e "$warning" -e "$error" -e "$make" -e "$compiler_recipe" +fi |