logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Sympa::CLI - Base class of Sympa CLI modules

Description

       Sympa::CLI is the base class of the classes which defines particular command of command line utility.
       TBD.

   Methodssubclassshouldimplement
       _options ( )
           Classmethod,  overridable.   Returns an array to define command line options.  About the format see
           "Summary of Option Specifications" in Getopt::Long.

           By default general options are defined and  they  always  take  precedence  over  the  definition  in
           subclass.

       _args ( )
           Classmethod, overridable.  Returns an array to define mandatory arguments.  TBD.

           By default no mandatory arguments are defined.

       _need_priv ( )
           Classmethod,  overridable.   If  this  returns  true value (the default), the program tries getting
           privileges of Sympa user, prepare database connection, loading main configuration  and  then  setting
           language  according  to  configuration.   Otherwise,  it sets language according to locale setting of
           console.

       _log_to_stderr ( )
           Classmethod, overridable.  If this returns true value, output by logging facility will be redirected
           to standard error output (stderr).

           By default redirection is disabled.

       _run ( \$options, @argv )
           Classmethod, mandatory.  If the program is invoked, command line options are  parsed  as  _options()
           defines, arguments are checked as _args() defines and this method is called.

   Subcommands
       To implement a subcommand, simply create a submodule inheriting the module for parent command:

         package Sympa::CLI::mycommand::subcommand;
         use parent qw(Sympa::CLI::mycommand);
         ...

       Then this will implement the function of sympamycommandsubcommand.

History

       Sympa::CLI appeared on Sympa 6.2.68.

6.2.76                                             2025-02-12                                 Sympa::CLI(3Sympa)

Name

       Sympa::CLI - Base class of Sympa CLI modules

See Also

sympa(1).

Synopsis

         package Sympa::CLI::mycommand;
         use parent qw(Sympa::CLI);

         use constant _options   => qw(...);
         use constant _args      => qw(...);
         use constant _need_priv => 0;

         sub _run {
             my $class   = shift;
             my $options = shift;
             my @argv    = @_;

             #... Do the job...
             exit 0;
         }

       This will implement the function of sympamycommand.

See Also