From e95be8fca5a2b542327eda1eb4db0905c29d19dc Mon Sep 17 00:00:00 2001 From: Ville Rantanen Date: Tue, 7 May 2019 10:04:16 +0300 Subject: [PATCH] qolop parser --- reporting/qolop | 65 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 9 deletions(-) diff --git a/reporting/qolop b/reporting/qolop index 077e7f1..e7b0e2c 100755 --- a/reporting/qolop +++ b/reporting/qolop @@ -1,15 +1,17 @@ #!/bin/bash -_qColVersion() { echo Version 2019.04.12.0; } +_qColVersion() { echo Version 2019.05.07.0; } _qColHelp() { _qColVersion echo 'Quick shell COLOrizer Package Source me in BASH! +Why the name qolop? Place a mirror next to it! Functions: - _qCol: Print ANSI color codes by letter codes. Can export all letter codes as varibles. - _qCode: Print ANSI color codes by number sequence +- _qParse: Print ANSI color by english words ex. "red", "lightgreen", "gray on blue" - _qPos: Move cursor - _qClr: Clear screen - _qReset: Reset terminal @@ -40,6 +42,12 @@ Run qolop as script to print ANSI code table, or evaluate commands ' } +_qClr() { + # Clear screen + _qCol "CLR" + _qPos abs 0 0 +} + _qCol() { # print "easier" mapping of ANSI colors and controls local K="\033[1;30m" @@ -84,7 +92,9 @@ _qCol() { 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 " + 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 @@ -113,6 +123,48 @@ _qCode() { } } +_qParse() { + # Parse written colors to codes: 'help' to get help + local val codes + val="${@,,}" + if [[ ${#val} -lt 3 ]]; then + continue + fi + if [[ ${val} = *"help"* ]]; then + echo "Parse format [light][colorname], or '[light][colorname] on [colorcolorname]'" >&2 + return + fi + if [[ ${val} = "light"* ]]; then + codes="${codes} S" + val=${val#light} + fi + case "$val" in + "black"*) codes="${codes} k";; + "red"*) codes="${codes} r";; + "green"*) codes="${codes} g";; + "yellow"*) codes="${codes} y";; + "blue"*) codes="${codes} b";; + "magenta"*) codes="${codes} m";; + "cyan"*) codes="${codes} c";; + "gray"*) codes="${codes} w";; + "white"*) codes="${codes} W";; + esac + if [[ ${val} = *" on "* ]]; then + case "$val" in + *"black") codes="${codes} bk";; + *"red") codes="${codes} br";; + *"green") codes="${codes} bg";; + *"yellow") codes="${codes} by";; + *"blue") codes="${codes} bb";; + *"magenta") codes="${codes} bm";; + *"cyan") codes="${codes} bc";; + *"gray") codes="${codes} bk";; + *"white") codes="${codes} bw";; + esac + fi + _qCol $codes +} + _qPos() { # Cursor position control local n="$2" @@ -134,11 +186,6 @@ _qPos() { return 1 } -_qClr() { - # Clear screen - _qCol "CLR" - _qPos abs 0 0 -} _qReset() { # Reset terminal @@ -194,8 +241,8 @@ if [[ "$0" = "${BASH_SOURCE[0]}" ]]; then [[ "$1" = *"help" ]] && exit [[ "$1" = "-h" ]] && exit _qCol export "_" - printf "${_S}ANSI CODES AND QOLOP VARIABLES -==============================${_Z} + printf "${_S}ANSI CODES AND QOLOP VARIABLES FOR _qCol FUNCTION +=================================================${_Z} ${_R}Co${_G}lo${_B}rs${_W} and ${_S}Mo${_U}di${_st}fi${_u}er${_ic}s${_Z} \\\033[Xm or \\\033[X;Y;Zm ${_S}====================${_Z} 0 z Z Clear format