basic CPAN interface
[sepia.git] / lib / Sepia / CPAN.pm
blob7f15784006ec1b9995f575bee369c9685afbbb98
1 package Sepia::CPAN;
2 use CPAN;
3 use LWP::Simple;
5 sub init
7 CPAN::HandleConfig->load;
8 CPAN::Shell::setup_output;
9 CPAN::Index->reload;
12 sub list
14 grep $_->inst_file, CPAN::Shell->expand('Module', shift || '/./');
17 sub outdated
19 grep !$_->uptodate, list @_;
22 ## stolen from CPAN::Shell...
23 sub readme
25 my $dist = CPAN::Shell->expand('Module', shift);
26 return unless $dist;
27 $dist = $dist->cpan_file;
28 # my ($dist) = $self->id;
29 my ($sans, $suffix) = $dist =~ /(.+)\.(tgz|tar[\._-]gz|tar\.Z|zip)$/;
30 my ($local_file);
31 my ($local_wanted) = File::Spec->catfile(
32 $CPAN::Config->{keep_source_where}, "authors", "id",
33 split(/\//,"$sans.readme"));
34 $local_file = CPAN::FTP->localize("authors/id/$sans.readme", $local_wanted);
35 local (*IN, $/);
36 open IN, $local_wanted;
37 my $ret = <IN>;
38 close IN;
39 $ret;
42 sub perldoc
44 get($CPAN::Defaultdocs . shift);
47 sub install
49 my $dist = CPAN::Shell->expand('Module', shift);
50 $dist->install if $dist;