#!perl package cpanidx_httpserver; { $cpanidx_httpserver::VERSION = '0.08'; } # ABSTRACT: HTTP::Server::Simple based server for CPANIDX use strict; use warnings; use Config::Tiny; use Getopt::Long; use App::CPANIDX::HTTP::Server; my $config = 'cpanidx.ini'; my $tmport = 0; GetOptions( 'config=s', \$config, 'port=i', \$tmport ); my $ini = Config::Tiny->new(); my $port; my $dsn; my $user; my $pass; my $cfg = $ini->read( $config ) or warn $ini->errstr, "\n"; if ( $cfg ) { $port = $cfg->{_}->{port}; $dsn = $cfg->{_}->{dsn}; $user = $cfg->{_}->{user}; $pass = $cfg->{_}->{pass}; } unless ( $dsn ) { $dsn = 'dbi:SQLite:dbname=cpanidx.db'; warn "Using '$dsn'\n"; } $port = $tmport unless defined $port; my $server = App::CPANIDX::HTTP::Server->new( $port ); $server->dsn( $dsn, $user, $pass ); $server->run(); exit 0; __END__ =pod =head1 NAME cpanidx_httpserver - HTTP::Server::Simple based server for CPANIDX =head1 VERSION version 0.08 =head1 DESCRIPTION C<cpanidx_httpserver> is a L<HTTP::Server::Simple> based server for L<App::CPANIDX>. =head1 SYNPOSIS # cpanidx.ini port=8082 dsn=dbi:SQLite:dbname=cpanidx.db $ cpanidx_httpserver --config cpanidx.ini =head1 CONFIGURATION Configuration is stored in an L<Config::Tiny> style initialisation file. By default it looks for a C<cpanidx.ini> in the current working directory. This can be amended by using the C<--config> command line switch. If no previous configuration is found, the script will default to using L<DBD::SQLite> based database C<cpanidx.db> in the current working directory. The following configuration options are available: =over =item C<dsn> Specify the L<DBI> C<DSN> string to use. =item C<user> Specify the username to use with the C<dsn> (if applicable). =item C<pass> Specify the password to use with the C<dsn> (if applicable). =item C<port> Specify the listening port to use. The default is C<8080>. =back =head1 COMMAND LINE OPTIONS =over =item C<--config> Specify a configuration file to use. The default is to use C<cpanidx.ini> in the current working directory. =item C<--port> Specify the listening port to use. The default is C<8080>. =back =head1 AUTHOR Chris Williams <chris@bingosnet.co.uk> =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2011 by Chris Williams. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut