You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcp-panel/Build.PL

235 lines
7.4 KiB

use lib 'inc';
use Local::Module::Build;
my $builder = Local::Module::Build->new(
module_name => 'NGCP::Panel',
license => 'perl',
dist_version_from => 'lib/NGCP/Panel.pm',
dist_abstract => 'Sipwise Configuration Panel',
tap_harness_args => {
timer => 1,
formatter_class => 'TAP::Formatter::JUnit',
merge => 1,
},
configure_requires => {
'lib' => 0,
'Module::Build' => '0.4004',
'Moose' => 2,
},
requires => {
'base' => 0,
'Capture::Tiny' => 0,
'Catalyst::Action::RenderView' => 0,
'Catalyst::ActionRole::ACL' => 0,
'Catalyst::ActionRole::CheckTrailingSlash' => 0,
'Catalyst::ActionRole::RequireSSL' => 0,
'Catalyst::Authentication::Credential::HTTP' => 0,
'Catalyst::Model::DBIC::Schema' => 0,
'Catalyst::Plugin::Authentication' => 0,
'Catalyst::Plugin::Authorization::Roles' => 0,
'Catalyst::Plugin::ConfigLoader' => 0,
'Catalyst::Plugin::EnableMiddleware' => 0,
'Catalyst::Plugin::I18N' => 0,
'Catalyst::Plugin::Session' => 0,
'Catalyst::Plugin::Session::Store::FastMmap' => 0,
'Catalyst::Plugin::Session::State::Cookie' => 0,
'Catalyst::Plugin::Static::Simple' => 0,
'Catalyst::Runtime' => '5.90040',
'Catalyst::View::JSON' => 0,
'Catalyst::View::TT' => 0,
'Config::General' => 0,
'Data::HAL' => 0,
'Convert::Ascii85' => 0,
'Data::Dumper' => 0,
'Data::Validate::IP' => 0,
'DateTime' => 0,
'DateTime::Format::HTTP' => 0,
'DateTime::Format::ISO8601' => 0,
'DateTime::Format::RFC3339' => 0,
'DBIx::Class::ResultSet::RecursiveUpdate' => '0.30',
'Email::Valid' => 0,
'File::ShareDir' => 0,
'File::Type' => 0,
'GD::Simple' => 0,
'Hash::Merge::Simple' => 0,
'HTML::FormHandler' => '0.40026',
'HTML::FormHandler::Field' => 0,
'HTML::FormHandler::Field::Compound' => 0,
'HTML::FormHandler::Field::Select' => 0,
'HTML::FormHandler::Model::DBIC' => 0,
'HTML::FormHandler::Moose' => 0,
'HTML::FormHandler::Widget::Block::Bootstrap' => 0,
'HTTP::Headers' => 0,
'HTTP::Status' => 0,
'IO::Compress::Xz' => 0,
'IPC::System::Simple' => 0,
'JSON::Pointer' => 0,
'JSON::Types' => 0,
'JSON::Tiny::Subclassable' => 0,
'Log::Log4perl::Catalyst' => 0,
'Module::Runtime' => 0,
'Moose' => 2,
'Moose::Role' => 0,
'Moose::Util::TypeConstraints' => 0,
'MooseX::Object::Pluggable' => 0,
'namespace::autoclean' => 0,
'Net::HTTP' => 0,
'Net::Telnet' => 0,
'NGCP::Schema' => '2.003',
'Plack::Middleware::Deflater' => 0,
'Regexp::Parser' => 0,
'Scalar::Util' => 0,
'Sereal::Decoder' => 0,
'Sereal::Encoder' => 0,
'Sipwise::Base' => 0,
'strict' => 0,
'Template' => 0,
'Text::CSV_XS' => 0,
'Types::Path::Tiny' => 0,
'Time::HiRes' => 0,
'URI::Encode' => 0,
'URI::Escape' => 0,
'UUID' => 0,
'XML::Mini' => 0,
'warnings' => 0,
},
test_requires => {
'Catalyst::Test' => 0,
'File::Which' => 0,
'Getopt::Long' => 0,
'IO::Socket::IP' => 0,
'JSON' => 0,
'JSON::Parse' => 0,
'lib' => 0,
'Plack::Runner' => 0,
# actually, the `plackup` external bin. this will break if the Plack distro is split into pieces
'Sipwise::Base' => 0,
'Test::More' => 0,
'Test::mysqld' => 0,
'Test::WebDriver' => 0,
'strict' => 0,
'Sys::Sig' => 0,
'Test::WWW::Mechanize::Catalyst' => 0,
'URI' => 0,
'warnings' => 0,
},
recommends => {
# for the testcover target
'Devel::Cover' => 0,
'sigtrap' => 0,
# for development
'Convert::Ascii85' => 0,
'IO::Uncompress::UnXz' => 0,
},
add_to_cleanup => [ 'NGCP-Panel-*' ],
);
$builder->create_build_script;
__END__
=encoding UTF-8
=head1 NGCP-Panel
A completely overhauled provisioning interface for the NGCP system.
=head1 NAME
Build.PL - NGCP-Panel build system including test fixtures
=head1 SYNOPSIS
perl ./Build
./Build test --webdriver='phantomjs --webdriver=4444'
./Build test --webdriver='java -jar selenium-server-standalone.jar'
./Build test --webdriver='chromedriver --url-base=wd/hub --port=4444'
./Build test --webdriver=selenium-rc # from CPAN distro Alien-SeleniumRC
./Build test --webdriver=external --wd-server=127.0.0.1:5555
./Build testcover --webdriver='phantomjs --webdriver=4444'
./Build test_api
./Build test_api --schema-base-dir=path/to/schema --server=https://1.2.3.4:1443
=head2 Options
--mysqld-port port where the mysqld should be started
--mysql-dump one or more mysql dumps to be imported to our mysqld
--no-junit don't output junit but normal TAP, for manual testing
--run-server panel should be started by build script
--schema-base-dir directory of NGCP::Schema if its not yet installed
--server URI for socket test server
--webdriver Command to be run as Webdriver
--wd-server HOST:PORT of an external webdriver to connect to
--help brief help message
--man full documentation
=head1 OPTIONS
=head2 C<--mysqld-port>
If this option and C<--mysqld-dir> are supplied, a mysqld will be started
at the specified port and be used for the tests. mysqld will be stopped
and the temporary data deleted when this script finishes.
=head2 C<--mysql-dump>
If this option and C<--mysqld-port> are supplied, a mysqld will be started
and be used for the tests. It will import all dumps supplied with this option.
This option can be set multiple times. In this case all specified files will
be dumped into the database.
=head2 C<--run-server>
Does not take an argument. Indicates the ./Build script should start a
server running the panel by itself on the Address given by the --server
argument.
=head2 C<--schema-base-dir>
If the NGCP::Schema is not installed to a known path to perl, this
option can specify the base directory of its development location.
It will then be included via blib, so we have access to its lib and share.
=head2 C<--server>
URI for the HTTP::Server::PSGI socket server run for testing,
default C<http://localhost:5000>
=head2 C<--webdriver>
command to launch a webdriver
external if the webdriver is launched externally
this command is no longer required
=head2 C<--wd-server>
Host:Port of the webdriver to which the tests should connect.
Default is set by Test::WebDriver to localhost:4444
=head2 C<--help>
Print a brief help message and exits.
=head2 C<--man>
Prints the manual page and exits.
=head1 I18N
1. Update strings from database
script/ngcp_panel_dump_db_strings.pl
2. regenerate messages.pot (use -v for verbose output)
xgettext.pl --output=lib/NGCP/Panel/I18N/messages.pot --directory=lib/ --directory=share/templates/ --directory=share/layout -P perl=tt,pm
3. Update or create $LANG.po files
msgmerge --update $LANG.po messages.pot
In case your language did not exist already:
msginit --input=lib/NGCP/Panel/I18N/messages.pot --output=lib/NGCP/Panel/I18N/$LANG.po --locale=$LANG