101 lines
2.5 KiB
Plaintext
101 lines
2.5 KiB
Plaintext
Coding standards
|
|
================
|
|
This document describe the coding standards used in envbot.
|
|
|
|
Indention
|
|
---------
|
|
Indention is done with tabs, one tab char for each indention level.
|
|
Do adjust the code with spaces if you need to break a long line.
|
|
Example:
|
|
thisFunctionGotLotsOfParameters foo bar quux loooooooooooooooooooooooooooongParameter
|
|
some more parameters
|
|
That is, first indent with tabs to base indention level, then use spaces
|
|
to adjust.
|
|
|
|
|
|
Spaces
|
|
------
|
|
Trailing spaces
|
|
Forbidden.
|
|
Spaces around operators:
|
|
Depend on situation.
|
|
Examples:
|
|
myvar="this is a value"
|
|
if [[ "$myvar" = "something" ]]; then
|
|
As you can see it depends on where it is used.
|
|
Generally it should be used everywhere except assignment like
|
|
"=" and "=+".
|
|
|
|
|
|
Newlines
|
|
--------
|
|
There should not be newlines before a { or other block separator.
|
|
For example this is correct:
|
|
if [[ $a = $b ]]; then
|
|
runStuff
|
|
fi
|
|
But this is incorrect:
|
|
if [[ $a = $b ]]
|
|
then
|
|
runStuff
|
|
fi
|
|
|
|
Trailing newlines: There should be a single
|
|
ending newline at the end of the file, no
|
|
trailing newlines.
|
|
|
|
|
|
Functions
|
|
---------
|
|
Functions should be declared without the function keyword
|
|
and with the () following the name of the function, without
|
|
space between the function name and the (). After the () there
|
|
should be one space and then the opening bracket.
|
|
Example:
|
|
myNiceFunction() {
|
|
runStuff
|
|
}
|
|
|
|
|
|
Functions: Returning values
|
|
---------------------------
|
|
Return values using "printf -v" construct. Avoid subshells (for
|
|
performance reasons). One exception to this is the case of the
|
|
function only calling an external program, then just subshell
|
|
the function let the external programs output go to STDOUT of the
|
|
function.
|
|
Example of printf -v construct (first parameter for this function
|
|
is the name of the variable to return in):
|
|
myfunction() {
|
|
printf -v "$1" '%s' "something we computed"
|
|
}
|
|
Using return code should only be used when returned value is
|
|
an error code. Example:
|
|
otherfunction() {
|
|
if [[ "$1" = "foo" ]]; then
|
|
# Success!
|
|
return 0
|
|
else
|
|
# Fail
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
|
|
Comments
|
|
--------
|
|
Comments are free form inside function, function comment should
|
|
be coded in bashdoc style.
|
|
(TODO: add description of that or link to that)
|
|
|
|
Comments should be indented to same level as surrounding code,
|
|
unless the comment is commented out code. Commented out code
|
|
should be avoided in committed code, but if it is needed, the
|
|
comment should be at the start of the line.
|
|
|
|
|
|
if
|
|
--
|
|
When testing in if use the [[ ]] construct. Do NOT under ANY
|
|
circumstances use the [ ] construct.
|