Volansさんのhooksで影響範囲のhostsを知ることができるようにした

volansさんはコマンドをまとめておくツールなんですが、実行後にどこに何をやったか表示して欲しいことは多々あるだろうということでhooksに登録するhookへhostsを渡すようにしました。これでコマンド実行後に今実行したことを把握できるhookが記述できます。後ついでにconfig.plがsyntax errorなどを起こしていた場合はその場でdieするように変更しました。今後追加したい機能は、生成したコマンドの補完の自動生成です。これがつくとだいぶ有用性上がる気がする。

+{
    hooks => {
        REPORT_HOSTS => sub {
            ["echo %s",join(" ",@{$_[0]->{hosts}})];
        },
    },
    commands => {
        'deploy' => {
            'before_hooks' => [],
            'after_hooks'  => [qw/REPORT_HOSTS/],
            'hosts'        => sub {
                [qw/127.0.0.1/]
            },
            'cmd'          => sub {
                my ($host,$project) = @_;
                [q{rsync  /path/to/%s %s:/path/to/},$project,$host]; 
            },
        },


https://github.com/hiroyukim/Volans