diff --git a/scripts/message_bash/include.sh b/scripts/message_bash/include.sh new file mode 100644 index 0000000..2556d06 --- /dev/null +++ b/scripts/message_bash/include.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +myfunct() { + local a=10 + debug "my a variable is $a" + msg "value of 'a' squared: $(( a * a ))" +} + +check_file() { + if [ ! -f "monfichier.txt" ] + then + display_error "File monfichier.txt not found" + fi +} + +display_error() { + error "$*" +} diff --git a/scripts/message_bash/message.sh b/scripts/message_bash/message.sh new file mode 100644 index 0000000..b60e54d --- /dev/null +++ b/scripts/message_bash/message.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +DATE_FMT="+%s" + +msg() { + local message="$*" + [ -z "$message" ] && return + if [ -t 1 ] + then + printf "%b\n" "$message" + else + log "$message" + fi +} + +log() { + local message="${*-}" + [ -z "$message" ] && return + printf "%s %b\n" "$(date $DATE_FMT)" "$message" +} + +debug() { + local message="$*" + [[ -z $DEBUG || $DEBUG -ne 1 ]] && return + [ -z "$message" ] && return + message="DEBUG [${BASH_SOURCE[1]}:${FUNCNAME[1]}]: $message" + if [ -t 2 ] + then + >&2 msg "\e[34m$message\e[0m" + else + >&2 log "$message" + fi +} + +error() { + local message="$*" + [ -z "$message" ] && return + message="ERROR: $message" + if [[ -n $DEBUG && $DEBUG -eq 1 ]] + then + message="$message\n\tstack trace:\n" + for (( i=1; i<${#FUNCNAME[@]}; i++ )) + do + message="${message}\t source:${BASH_SOURCE[i]}" + message="${message} function:${FUNCNAME[$i]}" + message="${message} line:${BASH_LINENO[$i-1]}\n" + done + fi + if [ -t 2 ] + then + >&2 msg "\e[31m$message\e[0m" + else + >&2 log "$message" + fi +} diff --git a/scripts/message_bash/test.sh b/scripts/message_bash/test.sh new file mode 100755 index 0000000..d1c0337 --- /dev/null +++ b/scripts/message_bash/test.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +source message.sh || { >&2 printf "Can't load message.sh"; exit 1; } +source include.sh || { >&2 printf "Can't load include.sh"; exit 1; } +myfunct +check_file +debug "We will display a message" +msg "Test Message" +error "This is a simple error message" +exit 0