Shell::Amazon::S3 - Moooooooosenized psh3ll
psh3llをmoose化してみました。
http://github.com/dann/shell-amazon-s3/tree/master
役割別にクラス分けをしたので、signle script版よりは構成は綺麗になりました。
- Plugin機構としてDevel::REPLのものを採用
- CommandをModule::Findで一括ロード
- Shell::Amazon::S3::Commandにcommand名のファイル置けばコマンドが追加できるようになりました
とすることで、コマンドの追加やシェルの拡張は大分簡単にできるようになりました。以下のようにpluginをloadすることでシェルの機能を拡張できます。
#!/usr/bin/env perl use strict; use warnings; use FindBin::libs; use Shell::Amazon::S3; my $shell = Shell::Amazon::S3->new; $shell->load_plugins($_) for qw(ReadLineHistory Completion); $shell->run; __END__