diff --git a/CODING_STYLE.TXT b/CODING_STYLE.TXT index 08e229c..83dee30 100644 --- a/CODING_STYLE.TXT +++ b/CODING_STYLE.TXT @@ -1,4 +1,4 @@ -Coding style used for my bash projects (v2.4 Sep 2016) +Coding style used for my bash projects (v2.6 Nov 2016) ++++++ Header @@ -125,14 +125,26 @@ fi ++++++ Logging -A logging function is available with the following levels of logging: +A logging function is available that writes both to log file and stdout/stderr. +It has the following global variable modifiers: -- DEBUG: Only log this when DEBUG flas is set in program. Any command forged for eval instruction should be logged by this. +_LOGGER_SILENT=true/false: disables any output to stdout/stderr +_LOGGER_VERBOSE=true/false: logs messages with log level VERBOSE +_LOGGER_ERR_ONLY=true/false: disables logging to log file and stdout/stderr except for CRITICAL, ERROR, WARN and ALWAYS log levels. + +The following log levels exist: + +- PARANOIA_DEBUG: Only used by debugging functions themselves +- DEBUG: Only log this when _DEBUG flag is set in program. Any command forged for eval instruction should be logged by this. - NOTICE: Standard messages +- ALWAYS: Standard messages, regardless of _LOGGER_ERR_ONLY - WARN: Requires attention - ERROR: Program produced an error but continues execution - CRITICAL: Program execution is halted +Can be called with: +Logger "My message" "LOGLEVEL" + ++++++ Eval Most commands should be logged to a tmp file. @@ -151,6 +163,14 @@ cmd=$SSH_CMD' "some; commands \"'$VARIABLE'\" some; other; commands" > some_file All eval cmd should exit their content to a file called "$RUNDIR/osync.$FUNCNAME.$SCRIPT_PID" Dots are used instead of '_' so variables can be separated with a forbidden char in variable names, so the separtors apply as wished. + +++++++ String function calls + +String returning functions should only be called this way in order to deal with spaces: +Quoting happens outside the function call. + +echo "$(myStringFunction $myStringVar)" + ++++++ Finding code errors Use shellcheck.net now and then (ignore SC2086 in our case) @@ -183,3 +203,10 @@ Run with errors exit code = 1 Run with warnings exit code = 2 Wrong shell exit code = 127 Usage function exit code = 128 + ++++++++ Detailled debugging + +When launching the program with 'bash -x', add SLEEP_TIME=1 so wait functions won't spam output +Ex: + +SLEEP_TIME=1 bash -x ./program.sh