4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

knife solo cook コマンドの誤爆を防ぐ

Posted at

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ディレクトリが存在しない場合にだけエラーを表示します。

もしかしたら、こういうことにならない方法がすでにあるかもしれないし、
もっといい方法があるかもしれない。。
あったら教えて下さい。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?