commit e1f41d37fa105ea24749cf44d731c958ecfc2073 Author: yorick Barbanneau Date: Thu Nov 8 00:18:02 2018 +0100 First commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..82b12ef --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +BASH message display library +---------------------------- + +A simple library for display text (bold, underline, color) on screen. I use it +for my script to make output more eye candy. + +## Quick example + +```bash +#import library +source /message/message.sh + +#call msg() +msg "green" "This is a **formated** message" +``` + +## more function + +This little library contain some helper function with pre-selected color. These +function automaticaly add `\n` caracter at the end of the message. + + * `error()` : display message in red with ERROR: before the text.If variable + `EXIT_ON_ERROR` equal 1, calling this function terminate the script with + `$ERROR_CODE` + * `warning()` : display message in yellow with WARNING: before the text + * `debu()` : display message only if `DEBUG` variable contain `1`, color is + cyan and display DEBUG: before message + +## Licence + +Do what you want and feel free to send me a message or offer me a beer if you +come near Bordeaux - France. diff --git a/example/example.sh b/example/example.sh new file mode 100755 index 0000000..cd2e31b --- /dev/null +++ b/example/example.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# message librairy example + +source ../message.sh +EXIT_ON_ERROR=1 + +debug "This message wille not be displayed because debug is not activated" + +msg "\n**__welcome to message lib example__**\n" +msg "red" "\nMessages " +msg "green" "can " +msg "yellow" "be " +msg "blue" "colored" +msg " **bold** and __underline__ \n\n" + +warning "Text with **a warning**" +msg "and when DEBUG=1\n" + +DEBUG=1 +debug "with debug message" + +error "Or a **real** and __serious__ error that exit script when EXIT_ON_ERROR=1" diff --git a/message.sh b/message.sh new file mode 100644 index 0000000..37bcff8 --- /dev/null +++ b/message.sh @@ -0,0 +1,66 @@ +#/bin/bash +# +# message () +# ---------- +# +# External library to display colored messages +# + +DEBUG=0 +EXIT_ON_ERROR=0 +ERROR_CODE=10 + +DATE_FORMAT="" + +msg () { + declare -A attr + local c="default" + + #foreground colors + attr[default]="\e[39m" + attr[red]="\e[31m" + attr[green]="\e[32m" + attr[yellow]="\e[33m" + attr[blue]="\e[34m" + attr[magenta]="\e[35m" + attr[cyan]="\e[36m" + + #formatting + attr[reset]="\e[0m" + attr[bold]="\e[1m" + attr[r_bold]="\e[22m" + attr[underl]="\e[4m" + attr[r_underl]="\e[24m" + if [[ $1 =~ ^(red|green|yellow|blue|magenta|cyan)$ ]] + then + c=$1 + shift + else + c="default" + fi + #printf "Select color %s with numero %s\n" $c ${attr[$c]} + #variables + local message=$(echo "$@" | sed -E " + s/\*\*([^\*\*]*)\*\*/\\${attr[bold]}\1\\${attr[r_bold]}/g; + s/__([^__]*)__/\\${attr[underl]}\1\\${attr[r_underl]}/g + ") + printf "${attr[$c]}${message}${attr[reset]}" +} + +error (){ + msg "red" "ERROR : $@\n" + [[ $EXIT_ON_ERROR -eq 1 ]] && exit $ERROR_CODE + exit +} + +warning () { + msg "yellow" "WARNING : $@\n" +} + +debug(){ + if [ $DEBUG -eq 1 ] + then + local message=$(echo "$@") + msg "cyan" "DEBUG : ${message}\n" + fi +}