Files
init.sh/doc/dev.md

79 lines
3.5 KiB
Markdown

# 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