Viewing File: /usr/local/cpanel/whostmgr/bin/perlmod
#!/usr/local/cpanel/3rdparty/bin/perl
# cpanel - whostmgr/bin/perlmod Copyright 2022 cPanel, L.L.C.
# All rights reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited
#### DEPRCATED ####
use Cwd;
use File::Spec;
use CPAN;
if ( !-e '/usr/bin/ncftpget' && -e '/usr/local/bin/ncftpget' ) {
system 'ln', '-s', '../local/bin/ncftpget', '/usr/bin/ncftpget';
}
chomp( my $mod = <STDIN> );
system 'ln -s /usr /usr/local/ssl 2>/dev/null';
my $install = @ARGV && $ARGV[0] eq '-i' ? 1 : 0;
if ( $install && -x '/usr/local/cpanel/scripts/perlinstaller' ) {
exec '/usr/local/cpanel/scripts/perlinstaller', $mod;
}
my $homedir = ( getpwuid($>) )[7];
my $protoc = 'http';
# Attempt to use user's CPAN config
if ( -e $homedir . '/.cpan/CPAN/MyConfig.pm' ) {
eval { require $homedir . '/.cpan/CPAN/MyConfig.pm'; };
}
if ( !-e $homedir . '/.cpan/CPAN/MyConfig.pm' || $@ ) {
# No user CPAN config exists, using system
eval { require CPAN::Config; };
}
{
no warnings 'redefine';
sub CPAN::Distribution::test {
my ($self) = @_;
$self->make;
}
}
require CPAN::HandleConfig;
my @missing_config_opts = CPAN::HandleConfig::missing_config_data();
if (@missing_config_opts) {
# System CPAN config doesn't exist, reset
$CPAN::Config = {
'build_cache' => q[10],
'build_dir' => q[/home/.cpan/build],
'cache_metadata' => q[1],
'cpan_home' => q[/home/.cpan],
'dontload_hash' => {},
'ftp' => q[/usr/bin/ftp],
'ftp_proxy' => q[],
'getcwd' => q[cwd],
'gzip' => q[/bin/gzip],
'histfile' => q[/home/.cpan/histfile],
'histsize' => q[100],
'http_proxy' => q[],
'inactivity_timeout' => q[310],
'inhibit_startup_message' => q[1],
'index_expire' => q[1],
'keep_source_where' => q[/home/.cpan/sources],
'lynx' => q[],
'make' => q[/usr/bin/make],
'make_arg' => q[],
'make_test' => q[NO],
'make_install_arg' => q[UNINST=1],
'makepl_arg' => q[],
'mbuild_arg' => q[],
'mbuild_install_arg' => q[],
'mbuild_install_build_command' => q[./Build],
'mbuildpl_arg' => q[],
'ncftpget' => q[],
'no_proxy' => q[],
'pager' => q[/usr/bin/less],
'prefer_installer' => q[MB],
'prerequisites_policy' => q[follow],
'scan_cache' => q[atstart],
'shell' => q[/bin/bash],
'tar' => q[/bin/tar],
'term_is_latin' => q[1],
'unzip' => q[/usr/bin/unzip],
'urllist' => [qq[$protoc://ftp.cpanel.net/pub/CPAN/]],
'wait_list' => [q[wait://ls6.informatik.uni-dortmund.de:1404]],
'wget' => q[/usr/bin/wget],
};
# Define missing options just in case
my @missing_config_opts = CPAN::HandleConfig::missing_config_data();
foreach my $opt (@missing_config_opts) {
$CPAN::Config->{$opt} = q[];
}
}
my @mods_to_get;
push( @mods_to_get, $mod );
for my $module (@mods_to_get) {
if ( @ARGV && $ARGV[0] eq '-i' ) {
CPAN::Shell->install($module);
}
else {
print qq{<br /><br /><b><font size="+3">Modules matching your query (click to install)</font></b>\n};
my $nummods = 0;
for my $mod ( CPAN::Shell->expand( 'Module', "/$mod/" ) ) {
$nummods++;
my $modname = $mod->{'ID'};
print qq{<font size="+2"><a href="perlmod?action=install&modname=$modname">$modname</a></font>\n};
}
if ( !$nummods ) {
print qq{<font size="2"><b>No Modules Match</b></font>\n};
}
}
}
print "perlmod--Install done\n";
Back to Directory
File Manager