こんばんは、Reply おじさんです。

多分このへん(↓)の続きみたいなお話です。

表記の通り、Reply::Plugin::ConfigurablePrompt という Reply のプラグインを書きました。

シェルみたいな、カスタマイズ可能なプロンプトを提供するプラグインです。

Reply に標準添付されているプラグインで、Reply::Plugin::FancyPromptというのがあるのですが、これは名前に反して(?)あまりファンシーではありません。bash の PS1 で表現すると

export PS1="\!> "

と同等で、カスタマイズも出来ません。。。

まー普通に使う分にはそんなに困らないかも、なのですが、上記に挙げてる記事にも書いているのですが、最近は Otogiri のプラグインとかと組み合わせて、DB のデータメンテとかするのに Reply を使っているので、 せめて DB 名とか出したいわけです。

と、言うわけで書いたのが表記のモジュール。

cpanm とかでインストールしてから、FancyPrompt や他のプロンプト系のプラグインの設定を消して、代わりに

[ConfigurablePrompt]
prompt='reply@' . Show_dbname() . "[$history_count]> "

みたいな感じで書きます。prompt には Perl の文が普通に書けて、main パッケージにエクスポートされている関数や変数が使えます。Show_dbname は Reply::Plugin::Otogiriが提供する現在使っているDB の設定名を返す関数です。$history_count は StandardPrompt が提供する変数で、bash でいうところの ! です。(コマンドの実行回数)

なので、この例ですと、

reply@myservice[10]> 

みたいな感じのプロンプトになります。(DB の設定名が myservice でコマンド実行回数が10回目とした場合)

ちょっと名前が強気すぎるかなぁ、とか他のプロンプトと共存できない(つーかそもそも出来るのか?実装上できるようになってるのだが、現実的に無理な気がする)とか、諸々の問題があるので、とりあえず github 止まりにしてます。気が向いたら CPAN に上げるかも、です。

CPAN にも上がっておりますので、よろしくご利用ください。

2015-03-04 追記

酔った勢いで、本家 FancyPrompt に p-r するかー、とか CPAN にあげてもいいかもー、とかいろいろ考え始めたのですが、実装上黒魔っぽいところが若干あるので、本家へ p-r は厳しいかなーってのと、 やっぱ名前が強気すぎて良くない、と思って、rename して CPAN にあげました。それに伴い、加筆・訂正しております。