Lemonldap-NG-Manager
view release on metacpan or search on metacpan
lib/Lemonldap/NG/Manager/Cli.pm view on Meta::CPAN
my $langMessages;
if ( open my $_json, "<", $langFile ) {
local $/ = undef;
$langMessages = $self->jsonConverter->decode(<$_json>);
}
# Display result
foreach (qw(errors warnings status)) {
if ( $parser->{$_} and @{ $parser->{$_} } ) {
my $s = Dumper( $parser->{$_} );
$s =~ s/\$VAR1\s*=\s*//;
$s =~ s/__(\w+)__/$langMessages->{$1}/ if ( defined $langMessages );
printf STDERR "%-8s: %s", ucfirst($_), $s;
}
}
}
sub run {
my $self = shift;
# Options simply call corresponding accessor
my $args = {};
while ( $_[0] =~ s/^--?// ) {
my $k = shift;
my $v = $k =~ $self->booleanOptions ? 1 : shift;
if ( ref $self ) {
eval { $self->$k($v) };
if ($@) {
die "Unknown option -$k or bad value ($@)";
}
}
else {
$args->{$k} = $v;
}
}
unless ( ref $self ) {
$self = $self->new($args);
}
unless (@_) {
die 'nothing to do, aborting';
}
my $action = shift;
unless ( $action =~
/^(?:get|set|del|addKey|delKey|addPostVars|delPostVars|merge|save|restore|rollback|purge)$/
)
{
die
"Unknown action $action. Only get, set, del, addKey, delKey, addPostVars, delPostVars, merge, save, restore, rollback, purge allowed";
}
unless ( $action eq "restore" ) {
# This step prevents restoring when config DB is empty (#2340)
$self->cfgNum( $self->lastCfg ) unless ( $self->cfgNum );
}
$self->$action(@_);
}
sub _user {
my $sysUser = scalar( getpwuid $< );
chomp $sysUser;
my $envUser;
foreach (qw(REMOTE_USER SUDO_USER USER)) {
( $envUser = $ENV{$_} ) and last;
}
$envUser = undef unless $envUser =~ /\w/;
if ($sysUser) {
$sysUser .= " [$envUser] " if $envUser;
}
else {
$sysUser = $envUser || 'Unknown';
}
return $sysUser;
}
package Lemonldap::NG::Manager::Cli::Request;
use Mouse;
has cfgNum => ( is => 'rw' );
has error => ( is => 'rw' );
sub params {
my ( $self, $key ) = @_;
return $self->{$key};
}
1;
__END__
=head1 NAME
=encoding utf8
Lemonldap::NG::Manager::Cli - Command line manager for Lemonldap::NG web SSO
system.
=head1 SYNOPSIS
#!/usr/bin/env perl
use warnings;
use strict;
use Lemonldap::NG::Manager::Cli;
# Optional: you can specify here some parameters
my $cli = Lemonldap::NG::Manager::Cli->new(iniFile=>'t/lemonldap-ng.ini');
$cli->run(@ARGV);
or use llng-manager-cli provides with this package.
llng-manager-cli <options> <command> <keys>
=head1 DESCRIPTION
Lemonldap::NG::Manager provides a web interface to manage Lemonldap::NG Web-SSO
system.
Lemonldap::NG Manager::Cli provides a command line client to read or modify
( run in 1.074 second using v1.01-cache-2.11-cpan-6aa56a78535 )