Lemonldap-NG-Cli

 view release on metacpan or  search on metacpan

lib/Lemonldap/NG/Cli.pm  view on Meta::CPAN

               # set takes two parameters
               if ($self->{argc} < 3)
               {
                    $self->setError ("$_: ".$ERRORS->{TOO_FEW_ARGUMENTS});
                    return 0;
               }

               my $var = $self->{argv}[1];
               my $val = $self->{argv}[2];

               # define action
               $self->{action} =
               {
                    type => "set",
                    save => 1,
                    var  => $var,
                    val  => $val,
               };
          }

          when ("unset")
          {
               # unset takes one parameter
               if ($self->{argc} < 2)
               {
                    $self->setError ("$_: ".$ERRORS->{TOO_FEW_ARGUMENTS});
                    return 0;
               }

               my $var = $self->{argv}[1];

               # define action
               $self->{action} =
               {
                    type => "unset",
                    save => 1,
                    var  => $var
               };
          }

          when ("get")
          {
               # get takes one parameter
               if ($self->{argc} < 2)
               {
                    $self->setError ("$_: ".$ERRORS->{TOO_FEW_ARGUMENTS});
                    return 0;
               }

               my $var = $self->{argv}[1];

               # define action
               $self->{action} =
               {
                    type => "get",
                    save => 0,
                    var  => $var,
               };
          }

          ## Macros

          when ("set-macro")
          {
               # set-macro takes two parameters
               if ($self->{argc} < 3)
               {
                    $self->setError ("$_: ".$ERRORS->{TOO_FEW_ARGUMENTS});
                    return 0;
               }

               my $m_name = $self->{argv}[1];
               my $m_expr = $self->{argv}[2];

               # define action
               $self->{action} =
               {
                    type => "set-macro",
                    save => 1,
                    name => $m_name,
                    expr => $m_expr
               };
          }

          when ("unset-macro")
          {
               # unset-macro takes one parameter
               if ($self->{argc} < 2)
               {
                    $self->setError ("$_: ".$ERRORS->{TOO_FEW_ARGUMENTS});
                    return 0;
               }

               my $m_name = $self->{argv}[1];

               # define action
               $self->{action} =
               {
                    type => "unset-macro",
                    save => 1,
                    var  => $m_name
               };

          }

          when ("get-macro")
          {
               # get-macro tkaes one parameter
               if ($self->{argc} < 2)
               {
                    $self->setError ("$_: ".$ERRORS->{TOO_FEW_ARGUMENTS});
                    return 0;
               }

               my $m_name = $self->{argv}[1];

               # define action
               $self->{action} =
               {
                    type => "get-macro",
                    save => 0,

lib/Lemonldap/NG/Cli.pm  view on Meta::CPAN

               };
          }

          # no action found
          default
          {
               $self->setError ("$_: ".$ERRORS->{UNKNOWN_ACTION});
               return 0;
          }
     }

     return 1;
}

## @method bool action ()
# Execute action parsed by parseCmd() method
#
# @return true on success, false otherwise
sub action
{
     my ($self) = @_;

     given ($self->{action}->{type})
     {
          ## Variables

          when ("set")
          {
               my $var = $self->{action}->{var};
               my $val = $self->{action}->{val};

               $self->{conf}->{$var} = $val;
          }

          when ("unset")
          {
               my $var = $self->{action}->{var};

               if (not defined ($self->{conf}->{$var}))
               {
                    $self->setError ("$_: ".$ERRORS->{CONFIG_WRITE_ERROR}.": There is no variables named '$var'");
                    return 0;
               }

               delete $self->{conf}->{$var};
          }

          when ("get")
          {
               my $var = $self->{action}->{var};

               if (not defined ($self->{conf}->{$var}))
               {
                    $self->setError ("$_: There is no variables named '$var'");
                    return 0;
               }

               print "$var = '", $self->{conf}->{$var}, "'\n";
          }

          ## Macros

          when ("set-macro")
          {
               my $m_name = $self->{action}->{name};
               my $m_expr = $self->{action}->{expr};

               $self->{conf}->{macros}->{$m_name} = $m_expr;
          }

          when ("unset-macro")
          {
               my $m_name = $self->{action}->{name};

               if (not defined ($self->{conf}->{macros}->{$m_name}))
               {
                    $self->setError ("$_: ".$ERRORS->{CONFIG_WRITE_ERROR}.": There is no macros named '$m_name'");
                    return 0;
               }

               delete $self->{conf}->{macros}->{$m_name};
          }

          when ("get-macro")
          {
               my $m_name = $self->{action}->{name};

               if (not defined ($self->{conf}->{macros}->{$m_name}))
               {
                    $self->setError ("$_: There is no macros named '$m_name'");
                    return 0;
               }

               print "$m_name = '", $self->{conf}->{macros}->{$m_name}, "'\n";
          }

          ## Applications

          when ("apps-set-cat")
          {
               my $catid   = $self->{action}->{id};
               my $catname = $self->{action}->{name};

               if (defined ($self->{conf}->{applicationList}->{$catid}))
               {
                    $self->{conf}->{applicationList}->{$catid}->{catname} = $catname;
               }
               else
               {
                    $self->{conf}->{applicationList}->{$catid} =
                    {
                         type    => "category",
                         catname => $catname
                    };
               }
          }

          when ("apps-get-cat")
          {
               my $catid = $self->{action}->{id};



( run in 0.464 second using v1.01-cache-2.11-cpan-5b529ec07f3 )