アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

PHP_Ncursesを使ってPEARインストーラの対話インターフェースを実装してみた

こんにちは、亀本です。

先日、第33回PHP勉強会を開催してきました。
参加者の皆さん、並びに招待発表を引き受けてくださったke-tai.orgのmatsuiさん、ありがとうございました。また、運営を協力してくださった皆様、お疲れ様でした。
それに関するいろいろのことは、また後ほどどこかでまとめることにして、今回はTechネタのブログですw
(アシアルブログは少し変わった当番制を取っていて、今日は技術ネタ当番に当たってたりします。。。(--;)


さて、今回はちょっと、PHPに実装されているNcursesの利用APIを用いて遊んでみました。

PEARのインストールって、普段みんなどうなさってるでしょうか。ほとんどの方がpearコマンドを使って、いるのではないかと思います。

他にもWeb上から実行するとか、Gtkのインターフェースがあるらしいとか、rpmにしてインストールとかいろいろあるみたいなんですが、ためしにPHPのNcursesモジュールを使ってパッケージのインストールを対話的に行えるようにしてみました。

とはいえ、遊び半分な感じなので、機能的には骨格ができてるだけ、という感じです。
今さらpearコマンドが対話的になってうれしいこともあまりない気もしますし、Ncursesをラッピングして利用する際のサンプル程度に思っていただければと思います。

なにしろ、まずPHPを--with-ncursesで再コンパイルしないといけないし、本末転倒orz

ソースはこちら

pearコマンドを丸ごと代替・・・と、ばっちり言えればよかったのですが、ひとまずpear.php.netチャンネルについてのlistとinstallをくっつけてみただけ、という状態になっています。

動作画面:


利用するには、先述のとおり--with-ncursesをつけて再コンパイルしないといけません。

まだまだ張りぼて感が出ちゃってますので、実用には耐えない気がします。
そのうち、その他のコマンドやパッケージによってbateかどうかとかいろいろ見るとか、やれるようにしたいですね。需要があればw
# ノリノリで手伝ってくれそうな人とかいたら、CodeReposに投げて開発したいなー、なんてたくらんでたり。。。


PHPのNcursesはマニュアルもすかすかだし実装もNcursesのAPIをすべてラッピングしきれていないなど、貧弱なところもありますが、こういったちょっとしたインターフェースを作るにはそれほど困りません。

Cでバリバリ書いていくほどでもないけど、ちょっとGUIっぽくしたい。。。なんて人は、ちょっとNcursesモジュールを触ってみると面白いかもしれません。