47 lines
1.1 KiB
Perl
47 lines
1.1 KiB
Perl
#!/usr/bin/env perl
|
|
|
|
use warnings;
|
|
|
|
BEGIN {
|
|
$pwd = `pwd`;
|
|
chomp $pwd;
|
|
eval qq{
|
|
use lib "$pwd/lemonldap-ng-common/blib/lib";
|
|
use lib "$pwd/lemonldap-ng-handler/blib/lib";
|
|
use lib "$pwd/lemonldap-ng-portal/blib/lib";
|
|
use lib "$pwd/lemonldap-ng-manager/blib/lib";
|
|
};
|
|
die $@ if ($@);
|
|
}
|
|
|
|
my %_apps;
|
|
|
|
my %builder = (
|
|
handler => sub {
|
|
require Lemonldap::NG::Handler::Nginx;
|
|
return Lemonldap::NG::Handler::Nginx->run( {} );
|
|
},
|
|
manager => sub {
|
|
require Lemonldap::NG::Manager;
|
|
return Lemonldap::NG::Manager->run( {} );
|
|
},
|
|
auth => sub {
|
|
require CGI::Emulate::PSGI;
|
|
require CGI::Compile;
|
|
return CGI::Emulate::PSGI->handler(
|
|
CGI::Compile->compile('lemonldap-ng-portal/example/index.pl') );
|
|
}
|
|
);
|
|
|
|
sub {
|
|
my $type = $_[0]->{LLTYPE} || 'handler';
|
|
print STDERR Dumper($_[0]);use Data::Dumper;
|
|
return $_apps{$type}->(@_) if ( defined $_apps{$type} );
|
|
if ( defined $builder{$type} ) {
|
|
$_apps{$type} = $builder{$type}->();
|
|
return $_apps{$type}->(@_);
|
|
}
|
|
die "Unknown PSGI type $type";
|
|
};
|
|
|