diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/CPANPLUS/Shell/Default/Plugins/HOWTO.pod')
-rw-r--r-- | Master/tlpkg/tlperl/lib/CPANPLUS/Shell/Default/Plugins/HOWTO.pod | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/Master/tlpkg/tlperl/lib/CPANPLUS/Shell/Default/Plugins/HOWTO.pod b/Master/tlpkg/tlperl/lib/CPANPLUS/Shell/Default/Plugins/HOWTO.pod deleted file mode 100644 index 8000aac9884..00000000000 --- a/Master/tlpkg/tlperl/lib/CPANPLUS/Shell/Default/Plugins/HOWTO.pod +++ /dev/null @@ -1,136 +0,0 @@ -=head1 NAME - -CPANPLUS::Shell::Default::Plugins::HOWTO -- documentation on how to write your own plugins - -=head1 SYNOPSIS - - package CPANPLUS::Shell::Default::Plugins::MyPlugin; - - ### return command => method mapping - sub plugins { ( myplugin1 => 'mp1', myplugin2 => 'mp2' ) } - - ### method called when the command '/myplugin1' is issued - sub mp1 { .... } - - ### method called when the command '/? myplugin1' is issued - sub mp1_help { return "Help Text" } - -=head1 DESCRIPTION - -This pod text explains how to write your own plugins for -C<CPANPLUS::Shell::Default>. - -=head1 HOWTO - -=head2 Registering Plugin Modules - -Plugins are detected by using C<Module::Pluggable>. Every module in -the C<CPANPLUS::Shell::Default::Plugins::*> namespace is considered a -plugin, and is attempted to be loaded. - -Therefor, any plugin must be declared in that namespace, in a corresponding -C<.pm> file. - -=head2 Registering Plugin Commands - -To register any plugin commands, a list of key value pairs must be returned -by a C<plugins> method in your package. The keys are the commands you wish -to register, the values are the methods in the plugin package you wish to have -called when the command is issued. - -For example, a simple 'Hello, World!' plugin: - - package CPANPLUS::Shell::Default::Plugins::HW; - - sub plugins { return ( helloworld => 'hw' ) }; - - sub hw { print "Hello, world!\n" } - -When the user in the default shell now issues the C</helloworld> command, -this command will be dispatched to the plugin, and its C<hw> method will -be called - -=head2 Registering Plugin Help - -To provide usage information for your plugin, the user of the default shell -can type C</? PLUGIN_COMMAND>. In that case, the function C<PLUGIN_COMMAND_help> -will be called in your plugin package. - -For example, extending the above example, when a user calls C</? helloworld>, -the function C<hw_help> will be called, which might look like this: - - sub hw_help { " /helloworld # prints "Hello, world!\n" } - -If you dont provide a corresponding _help function to your commands, the -default shell will handle it gracefully, but the user will be stuck without -usage information on your commands, so it's considered undesirable to omit -the help functions. - -=head2 Arguments to Plugin Commands - -Any plugin function will receive the following arguments when called, which -are all positional: - -=over 4 - -=item Classname -- The name of your plugin class - -=item Shell -- The CPANPLUS::Shell::Default object - -=item Backend -- The CPANPLUS::Backend object - -=item Command -- The command issued by the user - -=item Input -- The input string from the user - -=item Options -- A hashref of options provided by the user - -=back - -For example, the following command: - - /helloworld bob --nofoo --bar=2 joe - -Would yield the following arguments: - - sub hw { - my $class = shift; # CPANPLUS::Shell::Default::Plugins::HW - my $shell = shift; # CPANPLUS::Shell::Default object - my $cb = shift; # CPANPLUS::Backend object - my $cmd = shift; # 'helloworld' - my $input = shift; # 'bob joe' - my $opts = shift; # { foo => 0, bar => 2 } - - .... - } - - -=head1 BUG REPORTS - -Please report bugs or other issues to E<lt>bug-cpanplus@rt.cpan.org<gt>. - -=head1 AUTHOR - -This module by Jos Boumans E<lt>kane@cpan.orgE<gt>. - -=head1 COPYRIGHT - -The CPAN++ interface (of which this module is a part of) is copyright (c) -2001 - 2007, Jos Boumans E<lt>kane@cpan.orgE<gt>. All rights reserved. - -This library is free software; you may redistribute and/or modify it -under the same terms as Perl itself. - -=head1 SEE ALSO - -L<CPANPLUS::Shell::Default>, L<CPANPLUS::Shell>, L<cpanp> - -=cut - -# Local variables: -# c-indentation-style: bsd -# c-basic-offset: 4 -# indent-tabs-mode: nil -# End: -# vim: expandtab shiftwidth=4: - |