あるモジュールがPerlのコアモジュールに含まれているか、どのバージョンが含まれているかをたまに確認したくなりますが、その時に使うのが Modure::CoreList です。Modure::CoreListにはコマンドラインツールも用意されているのですが、tokuhiormが Web Interface版を作っていてとても便利でした。が、こちらは今404になってしまっているので、tokuhiromに確認の上、新しくサイトを動かしました。

http://corelist.rpee.be/

画面はこんな感じ

corelistweb.png

あるバージョンのperlにどのモジュールのどのバージョンが含まれているのかと、モジュールがどのPerlに含まれているのかのリストがでます。

corelistweb2.png

もとのソースコードを参考にしつつ、Kossyとboostrap3で移植しました。移植するついでに、Proclet、Server::Starter、cpanmを使い、無停止でModule::CoreListが自動でアップデートされるようにしてみました。コードはこんな感じ

my $proclet = Proclet->new;

$proclet->service(
    every => '3 * * * *',
    tag => 'cron',
    code => sub {
        open(my $fh, "<", "server.pid") or die "$@";
        my $pid = <$fh>;
        chomp $pid;
        my ($result,$exit_code) = capture(['cpanm','-lCoreList-lib','Module::CoreList']);
        if ( $exit_code == 0 && $result =~ m!Successfully installed Module-CoreList! ) {
            warn "KILLHUP server-starter ($pid)\n";
            kill 'HUP', $pid;
        }
    }
);

$proclet->service(
    code => sub {
        exec(qw!start_server --port!,$port,qw!--pid-file server.pid  --!,
             qw!plackup -Mlib=CoreList-lib/lib/perl5 -E production!,
             qw!-s Starlet --max-workers 10 -a  app.psgi!);
    },
    tag => 'web',
);

$proclet->run;

ニッチですがご利用ください

このブログ記事について

このページは、Masahiro Naganoが2014年6月 6日 16:06に書いたブログ記事です。

ひとつ前のブログ記事は「GrowthForecastの複合グラフ作成ページのUIを変更した」です。

次のブログ記事は「plenvやxbuildで使っているperl-buildを信頼性の向上目指してアップデートしました」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja