# 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](../README.md). 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