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 )