2013/02/22

SublimeKnifeSolo - SublimeText の Command Palette から knife solo を実行できる Plugin を書いたでござる

環境構築手順 を Ruby でシーケンシャルに記述できる chef-solo 、ローカルで作成した chef-solo の cookbook を remote に同期してくれてなおかつ実行してくれる knife-solo 。

その knife-solo のコマンドを SublimeText の Command Palette から叩ける Plugin が SublimeKnifeSolo を 書きました!

amazedkoumei / SublimeKnifeSolo

 

導入メリット

  • cookbook 編集後に SublimeText から離れることなく kife solo コマンドが実行できる。
  • remote へのログイン情報を ~/.ssh/config ではなく SublimeText に保存できる。
    • もちろん複数の host, user に対応可能(ドヤッ

 

仕様

  • 使い方はこんな感じ
    • cookbook 編集後に ⌘ + shift + p で  Command Palette を起動し "knife solo" などで絞り込むと "SublimeKnifeSolo: cook", "SublimeKnifeSolo: prepare" コマンドが見える。
    • コマンドを選択すると、登録した remote の一覧が表示される。
    • remote を選択すると その remote に対して knife solo コマンドが実行されます。
  • Command Palette を起動した時に開いていたファイルのディレクトリから solo.rb を探す。見つからなければ上の階層で探し最初に見つかった solo.rb を実行!
    • solo.rb が見つからなければエラー
  • remote の設定項目は knife-solo に準拠。
    • host
    • user
    • identity information
    • port
    • password
  • サポートしているコマンド。
    • knife solo prepare
    • knife solo cook
      • bootstrap と clean もあった方がいいと思いつつ、まだ使ったことないので保留。
      • init は SublimeText から実行したい欲求はないかな、と思っている。
  • 対応OS
    • OSXのみ

 

インストール

以下のコマンドを実行

git clone https://github.com/amazedkoumei/SublimeKnifeSolo.git ~/Library/Application\ Support/Sublime\ Text 2/Packages/SublimeKnifeSolo

PackageControllChannel には現在申請中です。通るかな(ドキドキ

2013/03/15 追記:

PackageControllに登録されました。冒頭に Sublime とつけるのは非推奨だそうなので 名称は KnifeSolo となっています。

SublimeText から PackageControll を起動し ( command + shift + p ) 検索窓に "knifesolo" と入力し、Enter を押すことでインストールできます。

 

申請のための手続きは、下記のページの "Submitting a Package" セクションと "Custom packages.json on GitHub" セクションにまとまっています。

 

設定

⌘ + shift + p で  Command Palette を起動し "knife solo" などで絞り込むと次のメニューが見えます。

Default を参考に User に設定を記述してください。

設定ファイルは Json 形式。上のリンクからも内容確認できます。

  • path = knife コマンドのPATH
  • parameters = remote へのログイン情報のリスト

 

 

最後に 

enjoy! って書いて締めたかったけど実はちょっと心配事があってだな・・・

Pacage Controll 申請の注意書きに「パッケージ名の冒頭にSublimeという文字列がある場合は間引いて申請しましょう」と書いてあったので素直に間引いて申請したんですけど

  • KnifeSolo という名前になってしまうけど、いいんですか? そんな他人様のプロジェクト名そのまんまのパッケージ名でいいんですか?
  • Plugin 内で使ってるコマンド名が全部 SublimeKnifeSolo になってるんですけど・・・

というあたり。。

 

後者はまぁ自分が直せばそれでいいんでしょうけど、前者ってどうやねんと。

そのようなケースよく見かけますけど、いざ自分がするとなると気になって気になって。

どうなんですか?マナー的に?そのままいってしまおうとは思っているのですが。

 

 

Comments