:B~ Estilo de código

1~coding-style Estilo de código

En este capítulo se documenta el estilo de código utilizado en los sistemas
en vivo.

2~ Compatibilidad

_* No utilizar sintaxis o semántica que sea única para el intérprete de
comandos Bash. Por ejemplo, el uso de arrays.

_* Utilizar únicamente el subconjunto POSIX - por ejemplo, usar $(foo) en
lugar de `foo`.

_* Se puede comprobar las secuencias de comandos con 'sh -n' y
'checkbashisms'.

_* Asegurarse de que el código funcione con 'set -e'.

2~ Sangrado

_* Utilizar siempre los tabuladores en lugar de espacios.

2~ Ajuste de líneas

_* En general, las líneas contienen 80 caracteres como máximo.

_* Utilizar los saltos de línea al «estilo Linux»:

Mal:

code{

 if foo; then
         bar
 fi

}code

Bien:

code{

 if foo
 then
         bar
 fi

}code

_* Lo mismo vale para las funciones:

Mal:

code{

 Foo () {
         bar
 }

}code

Bien:

code{

 Foo ()
 {
         bar
 }

}code

2~ Variables

_* Las variables deben escribirse siempre en letras mayúsculas.

_* Las variables que se utiliza en live-build siempre comienzan con el
prefijo #{LB_}#

_* Las variables temporales internas de live-build deben comenzar con el
prefijo #{\_LB_}#

_* Las variables locales comienzan con el prefijo live-build #{\_\_LB_}#

_* Las variables en relación a un parámetro de arranque en live-config
comienzan con #{LIVE_}#.

_* Todas las demás variables de live-config comienzan con el prefijo #{_}#

_* Utilizar llaves para las variables, por ejemplo, escribir #{${FOO}}# en
lugar de #{$FOO}#.

_* Utilizar comillas dobles en las variables para evitar dejar espacios en
blanco: Escribir #{"${FOO}"}# en lugar de #{${FOO}}#.

_* Por motivos de coherencia, se debe utilizar siempre comillas en la
asignación de valores a las variables:

Mal:

code{

 FOO=bar

}code

Bien:

code{

 FOO="bar"

}code

_* Si se utilizan múltiples variables, incluir la expresión completa entre
comillas dobles:

Mal:

code{

 if [ -f "${FOO}"/foo/"${BAR}"/bar ]
 then
         foobar
 fi

}code

Bien:

code{

 if [ -f "${FOO}/foo/${BAR}/bar" ]
 then
         foobar
 fi

}code

2~ Miscelánea

_* Se debe utilizar "#{|}#"  (sin comillas) como separador cuando se invoque
a sed, p.ej. "#{sed -e 's|foo|bar|'}#" (Pero sin las comillas "")

_* No se debe utilizar el comando #{test}# para hacer comparaciones o
pruebas, usar "#{[}#" "#{]}#" (sin ""); p.ej.  "#{if [ -x /bin/foo ]; ...}#"
en lugar de "#{if test -x /bin/foo; ...}#".

_* Se debe utilizar #{case}# siempre que sea posible en lugar de #{test}#,
ya que es más fácil de leer y más rápido en la ejecución.

_* Usar mayúsculas en los nombres de las funciones para evitar confusiones
con el entorno de los usuarios.
