166 lines
4.9 KiB
Bash
Executable File
166 lines
4.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
_qColHelp() {
|
|
echo 'Quick shell COLOrizer Package
|
|
Source me in BASH!
|
|
|
|
Version 2017.08.17.0
|
|
Examples:
|
|
source qolop # load functions
|
|
- As functions:
|
|
_title(){ _qCol z G; }
|
|
_z(){ _qCol z; }
|
|
_title; echo Title; _z
|
|
|
|
- As variables
|
|
TITLE=$( _qCol z G; )
|
|
Z=$( _qCol z; )
|
|
echo ${TITLE}Title${Z}
|
|
|
|
- Export to variables (prefixed with _c. Also the default)
|
|
_qCol export _c
|
|
echo -e ${_cG}Title${_cZ}
|
|
|
|
Run qolop as script to print ANSI code table
|
|
'
|
|
}
|
|
|
|
_qCol() {
|
|
# print "easier" mapping of ANSI colors and controls
|
|
local K="\033[1;30m"
|
|
local R="\033[1;31m"
|
|
local G="\033[1;32m"
|
|
local B="\033[1;34m"
|
|
local Y="\033[1;33m"
|
|
local M="\033[1;35m"
|
|
local C="\033[1;36m"
|
|
local W="\033[1;37m"
|
|
|
|
local k="\033[0;30m"
|
|
local r="\033[0;31m"
|
|
local g="\033[0;32m"
|
|
local b="\033[0;34m"
|
|
local y="\033[0;33m"
|
|
local m="\033[0;35m"
|
|
local c="\033[0;36m"
|
|
local w="\033[0;37m"
|
|
|
|
local bk="\033[40m"
|
|
local br="\033[41m"
|
|
local bg="\033[42m"
|
|
local by="\033[43m"
|
|
local bb="\033[44m"
|
|
local bm="\033[45m"
|
|
local bc="\033[46m"
|
|
local bw="\033[47m"
|
|
|
|
local S='\033[1m' #strong
|
|
local s='\033[2m' #strong off
|
|
local U='\033[4m' #underline
|
|
local u='\033[24m' #underline off
|
|
local z='\033[0m' #zero colors
|
|
local Z='\033[0m' #zero colors
|
|
local ic='\033[7m' #inverse colors
|
|
local io='\033[27m' #inverse off
|
|
local st='\033[9m' #strike on
|
|
local so='\033[29m' #strike off
|
|
local CLR='\033[2J' # Clear screen
|
|
local CLREND='\033[K' # Clear to end of line
|
|
local CLRBEG='\033[1K' # Clear to beginning of line
|
|
local CLRSCR="$CLR"'\033[0;0H' # Clear screen, reset cursor
|
|
|
|
local color_keys=" K R G B Y M C W k r g b y m c w S s U u z Z ic io st so bk br bg by bb bm bc bw CLR CLREND CLRBEG CLRSCR "
|
|
|
|
[[ "$1" = "export" ]] && {
|
|
local key
|
|
local prefix="$2"
|
|
[[ -z "$2" ]] && prefix=_c
|
|
for key in $color_keys; do
|
|
eval export ${prefix}${key}=\'${!key}\'
|
|
done
|
|
return
|
|
}
|
|
|
|
local arg val
|
|
for ((arg=1;arg<=$#;arg++)) {
|
|
val=${!arg}
|
|
[[ ${color_keys} = *" $val "* ]] || { echo "No such color code '${val}'" >&2; return 1; }
|
|
printf ${!val}
|
|
}
|
|
}
|
|
|
|
_qCode() {
|
|
# Enter numerical ANSI colors directly
|
|
local arg val
|
|
for ((arg=1;arg<=$#;arg++)) {
|
|
val=${!arg}
|
|
printf '\033['"${val}m"
|
|
}
|
|
}
|
|
|
|
_qPos() {
|
|
# Cursor position control
|
|
local n="$2"
|
|
local x="$3"
|
|
[[ -z "$n" ]] && n=1
|
|
[[ -z "$x" ]] && x=1
|
|
[[ "$1" = "save" ]] && { printf '\033[s'; return; }
|
|
[[ "$1" = "restore" ]] && { printf '\033[u'; return; }
|
|
[[ "$1" = "up" ]] && { printf '\033['${n}'A'; return; }
|
|
[[ "$1" = "down" ]] && { printf '\033['${n}'B'; return; }
|
|
[[ "$1" = "right" ]] && { printf '\033['${n}'C'; return; }
|
|
[[ "$1" = "left" ]] && { printf '\033['${n}'D'; return; }
|
|
[[ "$1" = "lineup" ]] && { printf '\033['${n}'E'; return; }
|
|
[[ "$1" = "linedown" ]] && { printf '\033['${n}'F'; return; }
|
|
[[ "$1" = "col" ]] && { printf '\033['${n}'G'; return; }
|
|
[[ "$1" = "abs" ]] && { printf '\033['${n}';'${x}'H'; return; }
|
|
}
|
|
|
|
_qClr() {
|
|
# Clear screen
|
|
_qCol "CLR"
|
|
_qPos abs 0 0
|
|
}
|
|
|
|
[[ "$0" = "${BASH_SOURCE[0]}" ]] && {
|
|
_qColHelp
|
|
[[ "$1" = *"help" ]] && exit
|
|
[[ "$1" = "-h" ]] && exit
|
|
|
|
_qCol export "_"
|
|
printf "${_S}ANSI CODES AND QOLOP VARIABLES
|
|
==============================${_Z}
|
|
${_S}Fo${_U}rm${_st}at${_u}ti${_ic}ng${_Z} ESC[Xm
|
|
${_S}==========${_Z}
|
|
0 Z Clear format
|
|
1 S ${_S}Strong ${_Z} 2 s ${_s}Off${_Z}
|
|
4 U ${_U}Underline${_Z} 24 u Off
|
|
7 ic ${_ic}Inverse${_Z} 27 io Off
|
|
9 st ${_st}Strike${_Z} 29 so Off
|
|
${_R}Co${_G}lo${_B}rs${_Z} ESC[Xm or ESC[X;Y;Zm
|
|
${_S}======${_Z}
|
|
30 k ${_k}Black ${_Z}1 K ${_K}Strong ${_Z}40 bk ${_bk}Background${_Z}
|
|
31 r ${_r}Red ${_Z}1 R ${_R}Strong ${_Z}41 br ${_br}Background${_Z}
|
|
32 g ${_g}Green ${_Z}1 G ${_G}Strong ${_Z}42 bg ${_bg}Background${_Z}
|
|
33 y ${_y}Yellow ${_Z}1 Y ${_Y}Strong ${_Z}43 by ${_by}Background${_Z}
|
|
34 b ${_b}Blue ${_Z}1 B ${_B}Strong ${_Z}44 bb ${_bb}Background${_Z}
|
|
35 m ${_m}Magenta ${_Z}1 M ${_M}Strong ${_Z}45 bm ${_bm}Background${_Z}
|
|
36 c ${_c}Cyan ${_Z}1 C ${_C}Strong ${_Z}46 bc ${_bc}Background${_Z}
|
|
37 w ${_w}White ${_Z}1 W ${_W}Strong ${_Z}47 bw ${_bw}Background${_Z}
|
|
Enter raw color codes with _qCode function
|
|
${_S}Clearing and movement${_Z} ESC[X or ESC[1X
|
|
${_S}=====================${_Z}
|
|
2J CLR Clear screen
|
|
2J ;H CLRSCR _qClr() Clear screen and cursor to upper left
|
|
K CLREND Clear to end of line
|
|
1K CLRBEG Clear to beginning of line
|
|
|
|
s _qPos save Save location u _qPos restore Restore location
|
|
A _qPos up Up E _qPos lineup Up line
|
|
B _qPos down Down F _qPos linedown Down line
|
|
C _qPos left Left y;xH _qPos abs y x Absolute Position
|
|
D _qPos right Right
|
|
"
|
|
}
|
|
|