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 )