:B~ コーディングスタイル

1~coding-style コーディングスタイル

この章では Live システムで利用されているコーディングスタイルについて述べます。

2~ 互換性

_* Bash シェル固有の書式や記号を使わないでください。例えば配列構造の利用など

_* POSIX のサブセットだけを使ってください - 例えば `foo` よりも $(foo) を使ってください。

_*  'sh -n' と 'checkbashisms' によりスクリプトをチェックできます。

_* シェルコードが全て確実に 'set -e' で動作するようにしてください。

2~ インデント

_* 常にスペースよりもタブを使います。

2~ 改行

_* 通常、行は最大で80文字までです。

_* 「Linux 式」で改行します:

悪い例:

code{

 if foo; then
         bar
 fi

}code

良い例:

code{

 if foo
 then
         bar
 fi

}code

_* 関数についても同様です:

悪い例:

code{

 Foo () {
         bar
 }

}code

良い例:

code{

 Foo ()
 {
         bar
 }

}code

2~ 変数

_* 変数は常に大文字です。

_* live-build で利用する変数は先頭を常に #{LB_}# で始めます。

_* live-build 内部の一時変数は #{\_LB_}# で始めます。

_* live-build のローカル変数は #{\_\_LB_}# で始めます。

_* live-config 中のブートパラメータにつながる変数は #{LIVE_}# で始めます。

_* live-config 中の他の変数は全て #{_}# で始めます。

_* 変数は大括弧「{}」で囲みます。例えば #{$FOO}# ではなく #{${FOO}}# とします。

_* 空白文字の可能性を考慮し、常に引用符を使って変数を保護します: #{${FOO}}# ではなく #{"${FOO}"}# とします。

_* 一貫性を保つため、変数に値を割り当てるときは常に引用符を使います:

悪い例:

code{

 FOO=bar

}code

良い例:

code{

 FOO="bar"

}code

_* 複数の変数を使うときは表現全体を引用符で囲みます:

悪い例:

code{

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

}code

良い例:

code{

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

}code

2~ その他

_* sed を呼び出すときは区切り文字に「#{|}#」を使います。例えば「#{sed -e 's|foo|bar|'}#」

_* 比較やテストには #{test}# コマンドを使わず、「#{[}#」や「#{]}#」を使います。例えば「#{if [ -x /bin/foo ];
...}#」を使い、「#{if test -x /bin/foo; ...}#」は使いません。

_* #{test}# よりも #{case}# の方が読みやすく実行速度も早いため、可能な部分ではこちらを使います。

_* ユーザの環境と混ざる可能性を限定するため、関数の名前には大文字を使います。
