-
Notifications
You must be signed in to change notification settings - Fork 0
/
.bash_colors
87 lines (78 loc) · 2.6 KB
/
.bash_colors
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/env bash
#####
#
# Terminal colours such as $RED, $GREEN, $YELLOW
# Part of someguy-shell which is
# written by @someguy123 (github.com/@someguy123)
#
# Borrowed from: github.com/robbyrussel/oh-my-zsh
# License: MIT (see bottom of file)
#####
# Use colors, but only if connected to a terminal, and that terminal
# supports them.
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
BOLD="" RED="" GREEN="" YELLOW="" BLUE="" MAGENTA="" CYAN="" WHITE="" RESET="" NORMAL=""
if command -v tput &>/dev/null; then
BOLD="$(tput bold)" RED="$(tput setaf 1)" GREEN="$(tput setaf 2)" YELLOW="$(tput setaf 3)" BLUE="$(tput setaf 4)"
PURPLE="$(tput setaf 5)" MAGENTA="$(tput setaf 5)" CYAN="$(tput setaf 6)" WHITE="$(tput setaf 7)"
RESET="$(tput sgr0)" NORMAL="$(tput sgr0)"
else
BOLD='\033[1m' RED='\033[00;31m' GREEN='\033[00;32m' YELLOW='\033[00;33m' BLUE='\033[00;34m'
PURPLE='\033[00;35m' MAGENTA='\033[00;35m' CYAN='\033[00;36m' WHITE='\033[01;37m'
RESET='\033[0m' NORMAL='\033[0m'
fi
#####
# Easy coloured messages function
# Written by @someguy123
# Usage:
# # Prints "hello" and "world" across two lines in the default terminal color
# msg "hello\nworld"
#
# # Prints " this is an example" in green text
# msg green "\tthis" is an example
#
# # Prints "An error has occurred" in bold red text
# msg bold red "An error has occurred"
#
#####
msg() {
local _color="" _dt="" _msg="" _bold=""
if [[ "$#" -eq 0 ]]; then echo ""; return; fi;
[[ "$1" == "ts" ]] && shift && _dt="[$(date +'%Y-%m-%d %H:%M:%S %Z')] " || _dt=""
if [[ "$#" -gt 1 ]] && [[ "$1" == "bold" ]]; then
_bold="${BOLD}"
shift
fi
(($#==1)) || _msg="${@:2}"
case "$1" in
bold) _color="${BOLD}";;
BLUE|blue) _color="${BLUE}";;
YELLOW|yellow) _color="${YELLOW}";;
RED|red) _color="${RED}";;
GREEN|green) _color="${GREEN}";;
CYAN|cyan) _color="${CYAN}";;
MAGENTA|magenta|PURPLE|purple) _color="${MAGENTA}";;
* ) _msg="$1 ${_msg}";;
esac
(($#==1)) && _msg="${_dt}$1" || _msg="${_color}${_bold}${_dt}${_msg}"
echo -e "$_msg${RESET}"
}
# Alias for 'msg' function with timestamp on the left.
msgts() {
msg ts "${@:1}"
}
msgerr() {
# Same as `msg` but outputs to stderr instead of stdout
>&2 msg "$@"
}
# make msg + colors available to subshells
# use -f for msg if using bash
export -f msg msgts msgerr
export RED GREEN YELLOW BLUE CYAN MAGENTA BOLD NORMAL RESET
#####
#
# This color code snippet was borrowed from oh-my-zsh's install script
# Please see OMZ_LICENSE.txt for a copy of the MIT license.
#####