#!/usr/bin/perl use warnings; use strict; use POSIX; my $action; eval { POSIX::setgid( scalar( getgrnam('__APACHEGROUP__') ) ); POSIX::setuid( scalar( getpwnam('__APACHEUSER__') ) ); }; for ( my $i = 0 ; $i < @ARGV ; $i++ ) { if ( $ARGV[$i] =~ /^-/ ) { $i++; next; } $action = $ARGV[$i]; last; } $action ||= "help"; if ( $action =~ /^(?:[gs]et|(?:add|del)Key|save|restore|rollback)$/ ) { eval { require Lemonldap::NG::Manager::Cli; }; die "Manager libraries not available, aborting ($@)" if ($@); Lemonldap::NG::Manager::Cli->run(@ARGV); } elsif ( $action =~ /^(?:info|update-cache)$/ ) { eval { require Lemonldap::NG::Common::Cli; }; die "Lemonldap::NG common libraries not available, aborting ($@)" if ($@); Lemonldap::NG::Common::Cli->run(@ARGV); } else { help(); } sub help { print STDERR qq{Usage: $0 action Available actions: - help : print this - info : get currentconfiguration info - update-cache : force configuration cache to be updated - get : get values of parameters - set : set parameter(s) value(s) - addKey : add or set a subkey in a parameter - delKey : delete subkey of a parameter - save : export configuration to STDOUT - restore - : import configuration from STDIN - restore : import configuration from file - rollback : restore previous configuration Options: - yes <0|1> : accept confirmation prompt automatically - log : set configuration log message - safe <0|1> : fail in case the requested configuration is invalid - force <0|1> : allow overwrite of existing config number - cfgNum : set new configuration number (requires -force 1) See Lemonldap::NG::Manager::Cli(3) for more }; } __END__ =head1 NAME =encoding utf8 lemonldap-ng-cli - Command-line manager for Lemonldap::NG web-SSO system. =head1 SYNOPSIS Get information about current configuration $ lemonldap-ng-cli info Update local configuration cache $ lemonldap-ng-cli update-cache Save configuration $ lemonldap-ng-cli save >conf.json $ lemonldap-ng-cli -cfgNum 19 save >conf-19.json Restore configuration $ lemonldap-ng-cli restore conf.json # OR $ lemonldap-ng-cli restore - and L =head2 Available commands =over =item info =item update-cache =item save =item restore =item get =item set =item addKey =item delKey =back =head2 Available options =over =item -yes Confirm modification automatically (default: 0) =item -log Allows you to set the log message that will be displayed in the manager =item -safe The configuration change will be aborted if it contains errors (default: 0) =item -cfgNum Choose a particular configuration number (default: latest) =item -force Allows you to force overwriting an existing configuration (default: 0) =back =head1 SEE ALSO L, L L =head1 AUTHORS =over =item David Coutateur, Edavid.jose.delassus@gmail.comE =item Clement Oudot, Eclem.oudot@gmail.comE =item Xavier Guimard, Ex.guimard@free.frE =back =head1 BUG REPORT Use OW2 system to report bug or ask for features: L =head1 DOWNLOAD Lemonldap::NG is available at L =head1 COPYRIGHT AND LICENSE =over =item Copyright (C) 2016 by Xavier Guimard, Ex.guimard@free.frE =item Copyright (C) 2016 by Clément Oudot, Eclem.oudot@gmail.comE =back This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see L. =cut