package Devel::IPerl::Plugin::EnvironmentModules; use strict; use warnings; use Env::Modulecmd (); our $VERSION = '0.02'; sub avail { shift; Env::Modulecmd::_modulecmd('avail'); } sub load { shift; Env::Modulecmd::_modulecmd('load', @_); } sub list { shift; Env::Modulecmd::_modulecmd('list'); } sub new { bless {}, $_[0]; } sub register { my ($class, $iperl) = @_; my $self = $class->new; for my $name(qw{avail load unload list show}) { $iperl->helper("module_$name" => sub { my ($ip, $ret) = (shift, -1); return $ret if @_ == 0; my $cb = $self->can($name); return $self->$cb(@_); }); } return 1; } sub show { shift; Env::Modulecmd::_modulecmd('show', @_); } sub unload { shift; Env::Modulecmd::_modulecmd('unload', @_); } 1; =pod =head1 NAME Devel::IPerl::Plugin::EnvironmentModules - Environment Modules =begin html <!-- Travis --> <a href="https://travis-ci.org/kiwiroy/Devel-IPerl-Plugin-EnvironmentModules"> <img src="https://travis-ci.org/kiwiroy/Devel-IPerl-Plugin-EnvironmentModules.svg?branch=master" alt="Build Status" /> </a> <!-- Coveralls --> <a href="https://coveralls.io/github/kiwiroy/Devel-IPerl-Plugin-EnvironmentModules?branch=master"> <img src="https://coveralls.io/repos/github/kiwiroy/Devel-IPerl-Plugin-EnvironmentModules/badge.svg?branch=master" alt="Coverage Status" /> </a> <!-- Kritika --> <a href="https://kritika.io/users/kiwiroy/repos/6049167555239475/heads/master/"> <img src="https://kritika.io/users/kiwiroy/repos/6049167555239475/heads/master/status.svg" alt="Kritika Analysis Status" /> </a> =end html =head1 DESCRIPTION A plugin to use when you have L<environment modules|http://modules.sourceforge.net> to work with. The plugin is a wrapper for the L<Env::Modulecmd> perl module. =head1 SYNOPSIS IPerl->load_plugin('EnvironmentModules') unless IPerl->can('module_load'); IPerl->module_load('git'); IPerl->module_unload('git'); =head1 INSTALLATION AND REQUISITES =head1 IPerl Interface Method =head2 register Called by C<<< IPerl->load_plugin('EnvironmentModules') >>>. =head1 REGISTERED METHODS =head2 module_avail IPerl->module_list; Display a list of environment modules that are available. =head2 module_load IPerl->module_load('gcc'); Load a list of environment modules. =head2 module_list IPerl->module_list; Display the list of environment modules that are loaded. =head2 module_show IPerl->module_show('gcc'); Display the environment modified by the given environment module. =head2 module_unload IPerl->module_unload('gcc'); Unload a list of environment modules. =head1 INTERNAL METHODS Not for end user consumption. =head2 avail my $p = Devel::IPerl::Plugin::EnvironmentModules->new(); $p->avail; A more longwinded C<<< IPerl->module_avail; >>>. =head2 load my $p = Devel::IPerl::Plugin::EnvironmentModules->new(); $p->load('gcc'); A more longwinded C<<< IPerl->module_load; >>>. =head2 list my $p = Devel::IPerl::Plugin::EnvironmentModules->new(); $p->list(); A more longwinded C<<< IPerl->module_list; >>>. =head2 new my $p = Devel::IPerl::Plugin::EnvironmentModules->new(); Create a new instance. =head2 show my $p = Devel::IPerl::Plugin::EnvironmentModules->new(); $p->show('gcc'); A more longwinded C<<< IPerl->module_show; >>>. =head2 unload my $p = Devel::IPerl::Plugin::EnvironmentModules->new(); $p->unload('gcc'); A more longwinded C<<< IPerl->module_unload; >>>. =head1 SEE ALSO =over 4 =item L<Env::Modulecmd> =item L<Devel::IPerl> =back =cut