Files
init.sh/doc/dev.md

3.5 KiB

init.sh developper's reference

Getting started

This is a programmer reference. It's not intended to be a manual, but a reference for all internal functions, so you can easily build your own modules. This suppose you already read the Readme file. Creating modules will also requires some good knowledge of Bash programming.

The aaa_error.sh file

Functions

check_root

Check if user is root. If user is not root, script execution is interupted and exit with error.

This function have no parameter.

If the variable NO_ROOT_CHECK is set to true the function always exit without error and no check is done.

die

Trigger an error, print a backtrace and exit the script, unless KEEPGOING variable is set to true. In that situation we just display a warning.

If the parameter --force is given, we exit even if the KEEPGOING variable is set to true.

noerror

Allow te execution of a command bypassing the error management system. The purpose is to allow execution of test returning normally a non zero value without triggering an error and the following exit.

If the first parameter is --noout all the outputs are disabled. The other parameters are the raw command line to execute.

The function echoes the error code returned by the executed command.

Other functionnalities

The simple integration of aaa_error.sh file into a script, will change the script behaviour. The following Bash signals will be trapped:

  • ERR: The ERR signal is triggered every time Bash encounter an error or if a command return a non zero value. The function called on that signal will stop execution of the script displaying an error message with error code and a backtrace to help identify the error origin.
  • SIGINT: That signal is trigerred when Ctrl + C is pressed by the user. That signal will be interpreted only if the command is a Bash internal. If an executable receive the signal it will be interpreted with the own executable mechanisms. We will exit after cleanup.
  • SIGTERM: That signal is typically the result of an external kill of the bash process running the script. We will exit after cleanup.

The display.sh file

Functions

prnt

Print a message with timestamp and header. The header depends on first parameter will be collored and have a fixed lenght so text is always alligned.

The first parameter is the header type, having those possible values:

  • I: Display an informative message in green
  • W: Display a warning in yellow
  • E: Display an error in red
  • m: Display a message without header but alligned
  • Anything else will be treated as the message and will loose alignment.

Second parameter is the message to display.

Other functionnalities

Using that script will declare many easy to remember variables containing Bash color codes :

  • Standard codes depending on your environment: DEFAULTFG, DEFAULTBG, DEFAULTCOL=${DEFAULTBG}${DEFAULTFG}
  • Regular Colors: Black, Red, Green, Yellow, Blue, Purple, Cyan, White
  • Bold: BBlack, BRed, BGreen, BYellow, BBlue, BPurple, BCyan, BWhite
  • Underline: UBlack, URed, UGreen, UYellow, UBlue, UPurple, UCyan, UWhite
  • Background: On_Black, On_Red, On_Green, On_Yellow, On_Blue, On_Purple, On_Cyan, On_White
  • High Intensity: IBlack, IRed, IGreen, IYellow, IBlue, IPurple, ICyan, IWhite
  • Bold High Intensity: BIBlack, BIRed, BIGreen, BIYellow, BIBlue, BIPurple, BICyan, BIWhite
  • High Intensity backgrounds: On_IBlack, On_IRed, On_IGreen, On_IYellow, On_IBlue, On_IPurple, On_ICyan, On_IWhite