This is the rc-scripts style manual.  It governs the coding style 
of rc-scripts.  Everything here might as well have been spoken by 
God.  If you find any issues, please talk to base-system@gentoo.org 
or #gentoo-base on irc.freenode.net.

#############
# VARIABLES #
#############
- User Variables -
    Variables must always be enclosed by {}
      e.g. ${foo} ${bar}
- Internal Shell Variables -
    Do not use {} with internal variables unless appropriate
      e.g. case $1 in
      e.g. foo=$IFS
      e.g. echo "blah${1}123"
- Assigning with Quotes -
    When assigning to a variable from another variable, you should
    not need quotes. However, you do when assigning from a subshell.
      e.g. foo=${bar}
      e.g. foo="$(uname -a)"

#########
# TESTS #
#########
- Brackets -
    Always use the [ ... ] form instead of [[ ... ]] as the later only really
    works in bash, and we should support as many shells as we can.
- Quoting -
    When dealing with strings, you should quote both sides.

###############
# CODE BLOCKS #
###############
- Structure -
    Use the more compact form
      e.g. if ... ; then
      e.g. while ... ; do
    Do not use the older form
      e.g. if ...
           then
- Functions -
    Use the more compact form
      e.g. foo() {
    Do not lead with 'function '
      e.g. function foo() {

############
# COMMENTS #
############
- General -
    Try to include a comment block before sections 
    of code to explain what you're attempting