knife solo cook
コマンドはchefリポジトリ内で実行しないと、失敗するだけでなく、
余計なnodeファイルなどが作成されてしまう。
ただ、エラーで終了してくれればいいんだけど。。。
しばらく、失敗している原因(実行するディレクトリが違う事)に気づかいない場合も多々ある。
Recipeやnodeファイルを無駄に見なおしたり。。。
ということで、 対症療法ですがaliasでなんとかしてみました。
方法
以下の関数とaliasを.zshrc
や.bashrc
に設定するだけです。
function knife_solo_check() {
if [ "$1" = 'solo' ] && [ "$2" = 'cook' ] && [ ! -d .chef ]; then
\echo -e '\033[0;31mERROR:\033[0;39m Not chef repository directory.'
else
\knife $@
fi
}
alias knife=knife_solo_check
内容は単純で、knife
コマンドの引数がsolo cook
であるとき且つ、
実行した場所に.chef
ディレクトリが存在しない場合にだけエラーを表示します。
もしかしたら、こういうことにならない方法がすでにあるかもしれないし、
もっといい方法があるかもしれない。。
あったら教えて下さい。