Skip to content

Instantly share code, notes, and snippets.

@milannedic
Last active December 3, 2018 22:02
Show Gist options
  • Save milannedic/7dd3e8f4ad78e2006b9dc9db942dabfe to your computer and use it in GitHub Desktop.
Save milannedic/7dd3e8f4ad78e2006b9dc9db942dabfe to your computer and use it in GitHub Desktop.
# 1. Add these into your .bashrc
alias colormake='~/colormake.sh'
alias make='colormake'
alias gcc='COLORMAKE_COMMAND=gcc colormake'
alias clang='COLORMAKE_COMMAND=clang colormake'
# 2. source ~/.bashrc
# https://github.com/renatosilva/colormake/blob/master/colormake.sh
# 3. Create colormake.sh and save it with this, then run some make:
# -----------------------------------------------------------------
#!/bin/bash
# Colored Make 2016.1.21
# Copyright (c) 2014 Renato Silva
# Licensed under BSD
# 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment