App-GhaInstall

 view release on metacpan or  search on metacpan

lib/App/GhaInstall.pm  view on Meta::CPAN

	
	if ( INSTALLER eq 'cpm' ) {
		return maybe_die system 'cpm', 'install', '-g', @modules;
	}

	install_module($_) for @_;
}

sub install_module {
	my $module = shift;
	
	if ( $DRY_RUN ) {
		warn "install: $module\n";
		return;
	}
	
	if ( INSTALLER eq 'cpanm' ) {
		return maybe_die system 'cpanm', '-n', $module;
	}
	
	if ( INSTALLER eq 'cpm' ) {
		return maybe_die system 'cpm', 'install', '-g', $module;
	}
	
	if ( INSTALLER eq 'cpan' ) {
		my @notest = grep /^notest$/, @CPAN::EXPORT;
		'CPAN::Shell'->rematein( @notest, 'install', $module );
		if ( 'CPAN::Shell'->can('mandatory_dist_failed') ) {
			return scalar 'CPAN::Shell'->mandatory_dist_failed();
		}
		return;
	}
	
	return maybe_die system( split(/ /, INSTALLER), $module );
}

sub ensure_configured_cpan {
	use Cwd ();
	require CPAN;
	eval { require CPAN::Shell };

	my $home = $ENV{HOME};
	my $cwd  = Cwd::cwd;
	$CPAN::Config = {
	  'applypatch' => q[],
	  'auto_commit' => q[0],
	  'build_cache' => q[100],
	  'build_dir' => qq[$home/.cpan/build],
	  'build_dir_reuse' => q[0],
	  'build_requires_install_policy' => q[yes],
	  'bzip2' => q[/bin/bzip2],
	  'cache_metadata' => q[1],
	  'check_sigs' => q[0],
	  'colorize_output' => q[0],
	  'commandnumber_in_prompt' => q[1],
	  'connect_to_internet_ok' => q[1],
	  'cpan_home' => qq[$home/.cpan],
	  'ftp_passive' => q[1],
	  'ftp_proxy' => q[],
	  'getcwd' => q[cwd],
	  'gpg' => q[/usr/bin/gpg],
	  'gzip' => q[/bin/gzip],
	  'halt_on_failure' => q[0],
	  'histfile' => qq[$home/.cpan/histfile],
	  'histsize' => q[100],
	  'http_proxy' => q[],
	  'inactivity_timeout' => q[0],
	  'index_expire' => q[1],
	  'inhibit_startup_message' => q[0],
	  'keep_source_where' => qq[$home/.cpan/sources],
	  'load_module_verbosity' => q[none],
	  'make' => q[/usr/bin/make],
	  'make_arg' => q[],
	  'make_install_arg' => q[],
	  'make_install_make_command' => q[/usr/bin/make],
	  'makepl_arg' => q[INSTALLDIRS=site],
	  'mbuild_arg' => q[],
	  'mbuild_install_arg' => q[],
	  'mbuild_install_build_command' => q[./Build],
	  'mbuildpl_arg' => q[--installdirs site],
	  'no_proxy' => q[],
	  'pager' => q[/usr/bin/less],
	  'patch' => q[/usr/bin/patch],
	  'perl5lib_verbosity' => q[none],
	  'prefer_external_tar' => q[1],
	  'prefer_installer' => q[MB],
	  'prefs_dir' => qq[$home/.cpan/prefs],
	  'prerequisites_policy' => q[follow],
	  'scan_cache' => q[atstart],
	  'shell' => q[/bin/sh],
	  'show_unparsable_versions' => q[0],
	  'show_upload_date' => q[0],
	  'show_zero_versions' => q[0],
	  'tar' => q[/bin/tar],
	  'tar_verbosity' => q[none],
	  'term_is_latin' => q[1],
	  'term_ornaments' => q[1],
	  'test_report' => q[0],
	  'trust_test_report_history' => q[0],
	  'unzip' => q[/usr/bin/unzip],
	  'urllist' => [q[http://cpan.mirrors.uk2.net/], q[http://cpan.singletasker.co.uk/], q[http://cpan.cpantesters.org/]],
	  'use_sqlite' => q[0],
	  'version_timeout' => q[15],
	  'wget' => q[/usr/bin/wget],
	  'yaml_load_code' => q[0],
	  'yaml_module' => q[YAML],
	};
}

1;

__END__

=pod

=encoding utf-8

=head1 NAME

App::GhaInstall - provides the gha-install command



( run in 0.462 second using v1.01-cache-2.11-cpan-df04353d9ac )