注:まだ本当にレンタルサーバーでは試してないです。

思い立ってすっげぇ簡単なスクリプトを書いてみた。local::libを同梱する必要があるのと、~/perl5と.cpanがスクリプト実行ユーザー権限で書き込み・読み込みできる必要がある。
#!/usr/local/bin/perl use local::lib qw(/home/daisuke/perl5); use CGI; use CGI::Carp qw(fatalsToBrowser); use CPAN; sub main { local $| = 1; my $q = CGI->new; if ($q->param('mode') eq 'install') { install($q); } else { control($q); } } sub install { my $q = shift; print $q->header('text/plain'); CPAN::Shell->install($q->param('module')); } sub control { my $q = shift; print $q->header(), $q->start_html(), ; print $q->start_form(-action => $ENV{SCRIPT_NAME}, -method => 'GET'); print $q->textfield( -name => 'module', -size => 30, -value => $q->param('module') ); if ($q->param('module')) { my $mod; { local *STDOUT; close(STDOUT); $mod = CPAN::Shell->expandany($q->param('module')); } if (! $mod || ! $mod->inst_version) { print $q->div($q->param('module') . ": Not installed"); } else { print $q->div( ($q->param('module')) . ": Installed version is " . $mod->inst_v ersion); } } print $q->submit(-name => 'mode', -value => 'check'), $q->submit(-name => 'mode', -value => 'install'), ; print $q->end_form(), $q->end_html(); } main();

カテゴリ

トラックバック(0)

このブログ記事に対するトラックバックURL: http://mt.endeworks.jp/cgi-bin/mt-tb.cgi/2357

コメントする

筆者

daisuke - a.k.a. "lestrrat", Perl hacker at Livedoor Inc, Japan Perl Association 代表理事

このブログ記事について

このページは、Dが2009年5月27日 11:17に書いたブログ記事です。

ひとつ前のブログ記事は「Catalystアプリを継承する」です。

次のブログ記事は「全然必要ないんだけど、Moose化」です。

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

Powered by Movable Type 4.1