App-EPAN
view release on metacpan or search on metacpan
lib/App/EPAN.pm view on Meta::CPAN
TARGET="$MYDIR/local"
[ $# -gt 0 ] && TARGET=$1
if [ -n "$TARGET" ]; then
"$MYDIR/cpanm" --mirror "file://$MYDIR" --mirror-only \
-L "$TARGET" \
$(<"$MYDIR/modlist.txt")
else
"$MYDIR/cpanm" --mirror "file://$MYDIR" --mirror-only \
$(<"$MYDIR/modlist.txt")
fi
END_OF_INSTALL
chmod 0777 & ~umask(), $file->stringify();
} ## end if (!-e $file)
$file = $target->file('cpanm');
if (!-e $file) {
my $cpanm = which('cpanm');
File::Copy::copy($cpanm, $file->stringify());
chmod 0777 & ~umask(), $file->stringify();
}
} ## end sub action_update
{
no strict 'subs';
*action_install = \&action_update;
*action_add = \&action_update;
}
sub action_inject {
my ($self) = @_;
my $target = $self->target_dir;
$target->mkpath() unless -d $target;
my $author = $self->config('author') // $ENV{EPAN_AUTHOR} // 'LOCAL';
my $first = substr $author, 0, 1;
my $first_two = substr $author, 0, 2;
my $repo = $target->subdir(qw< authors id >, $first, $first_two, $author);
$repo->mkpath;
$repo = $repo->stringify;
File::Copy::copy($_, $repo) for $self->args;
INFO 'onboarding completed, indexing...';
$self->_do_index($target);
return;
}
sub _list_obsoletes {
my ($self) = @_;
my $basedir = $self->target_dir;
my $data_for = $self->_collect_index_for($basedir);
return sort {$a cmp $b} keys %{$data_for->{obsolete}};
}
sub action_list_obsoletes {
my ($self) = @_;
say for $self->_list_obsoletes;
return;
}
sub action_purge_obsoletes {
my ($self) = @_;
for my $file ($self->_list_obsoletes) {
INFO "removing $file";
unlink $file;
}
return;
}
sub action_list_actions {
my $self = shift;
no strict 'refs';
say 'Available actions:';
say for
sort {$a cmp $b}
map {s/^action_/- /; s/_/-/g; $_ }
grep {/^action_/ && $self->can($_)}
keys %{ref($self)."::"};
return;
}
sub last_distlist {
my ($self) = @_;
return keys %{$self->last_index()->{bare_distro}};
}
sub last_modlist {
my ($self) = @_;
my @retval =
map { (sort keys %$_)[0] }
values %{$self->last_index()->{bare_distro}};
} ## end sub last_modlist
1;
__END__
( run in 2.117 seconds using v1.01-cache-2.11-cpan-302cb4679cc )