Maplat
view release on metacpan or search on metacpan
Examples/helloworld_windowsservice/build.pl view on Meta::CPAN
#!/usr/bin/perl -w
# MAPLAT (C) 2008-2009 Rene Schickbauer
# Developed under Artistic license
# for Magna Powertrain Ilz
use strict;
use warnings;
use Sys::Hostname;
BEGIN {
if(!defined($ENV{TZ})) {
$ENV{TZ} = "CET";
}
}
use Date::Manip qw(Date_Init UnixDate);
sub getClasses($);
sub runCommand(%);
sub runSimpleCommand(%);
sub runService(%);
sub doBuild($);
sub createBuildNumber(%);
sub calcBuildNum();
sub getFileDate();
sub doFPad($$);
use Maplat::Helpers::Logo;
our $APPNAME = "Maplat BUILD";
our $VERSION = "2009-12-09";
MaplatLogo($APPNAME, $VERSION);
my @trimmodules = qw[DBD::CSV DBD::DBM DBD::ExampleP DBD::File DBD::Gofer
DBD::NullP DBD::PgPP DBD::ODBC DBD::Sponge unicore/Lbrk.pl];
my @apps;
if(@ARGV) {
@apps = @ARGV;
} else {
@apps = qw[webgui worker svc];
print "Default targets selected.\n";
}
print "The following targets will be build: " . join(" ", @apps) . "\n";
print "Reading classlibs\n";
my @webclasses = getClasses("Maplat::Web");
my @workerclasses = getClasses("Maplat::Worker");
foreach my $app (@apps) {
doBuild($app);
}
print "Build done.\n";
exit(0);
sub doBuild($) {
my $app = shift;
print "*** Target: '$app' ***\n";
if($app eq "webgui") {
print runCommand(
main => "webgui_cmd.pl",
base => "MaplatWeb.pm",
exe => "webgui_cmd.exe",
mf => "webgui_cmd.exe.manifest",
classes => \@webclasses,
) . "\n";
} elsif($app eq "worker") {
print runCommand(
main => "worker_cmd.pl",
base => "MaplatWorker.pm",
( run in 1.651 second using v1.01-cache-2.11-cpan-39bf76dae61 )