Lazuli

らずり

自分好みのコマンドを

よく使う処理をコマンドに登録して簡単に呼び出す簡易コマンドアプリケーションを作ったった。phpで動いてる。名前空間も使ってるから5.3以上必須。

- Rasp -
app2641/Rasp · GitHub

使い方

下記のコマンドを打つとあらかじめ登録しておいたTestコマンドが実行される。

$> rasp Test

Raspの設定

残念ながらgitから持ってきただけでは使えない。AutoLoaderのインストールとパスの設定が必要。

AutoLoaderのインストール

Symfony2のAutoLoader使ってる。composerでちょちょいと拝借。

$> cd /Path/to/Rasp/library/composer
$> composer.phar install


パスの設定

.bashrcに下記のパスを追記。記載したら忘れずに.bashrcを再読み込み。

export PATH=$PATH:/Path/to/Rasp

これで設定完了。

raspって打つと、

$> rasp

-- rasp commands list --
  Generate:                      新たなコマンドファイルを作成します。

現在使えるコマンド群が表示される。

新しいコマンドを追加する

コマンドを新規追加するにはGenerateコマンドを使う。引数に与えた名前がコマンド名になる。

$> rasp Generate Test


コマンドはcommands/Rasp/Commands/Test.phpとして生成される。Test.phpを編集して任意の処理を書き込み。
executeメソッドはコマンドを打った時に実行されるメソッド。helpメソッドはコマンドリストを表示した時に表示されるヘルプメッセージを返すメソッド。

渡された引数をechoで表示するだけのメソッド。


raspを打つと、コマンドが追加されヘルプメッセージが表示されている。

$> rasp

-- rasp commands list --
  Generate:                      新たなコマンドファイルを作成します。
  Test:                          引数に渡したStringをコンソールに表示します


rasp test打つと、

$> rasp test hoge
hoge

引数のhogeが表示される。

まとめ

複雑な処理を登録して動かすってのには少々めんどくさいけど軽量な処理ならこれで充分いける。
SymfonyのConsoleコンポーネントとかより手間は少ないと思う。
PHPUnitのテスト動かすのとか(設定ファイルのパス指定とかめんどい)、Gmailのバックアップコマンド書いてJenkinsで定期的に動かすとかそんな感じで使ってる。