+++ /dev/null
-#!/usr/bin/env perl
-#
-# Common setup functions for building release packages
-#
-
-# Gef - Jan3 2002
-# - Initial framework for migrating setup/release building to perl
-
-# TODO:
-# Gef - Cleaner handling of cons builds, currently doesn't catch cons errors
-
-package setup;
-
-# Package constructor
-sub new
-{
- my $this = {};
- bless $this;
-
- return $this;
-}
-
-# Replace in file parm-1; parm-2 with parm-3
-sub replace
-{
- shift;
- my $file = shift(@_);
- my $search = shift(@_);
- my $replace_with = shift(@_);
-
- # need to use | instead of / with sed since the variables will contain /'s which confuse it
- system("cat '$file' | sed -e 's|$search|$replace_with|g' > '$file.tmp'");
- system("cp '$file.tmp' '$file'; rm '$file.tmp'");
-}
-
-# Not exactly common (between win32/linux), but useful here all the same
-sub cons_build
-{
- shift;
- my $BUILD_DIR = shift(@_);
- my $BUILD_CMD = shift(@_);
- # use a direct system() call since syscmd doesnt catch cons errors
- system("cd $BUILD_DIR; $BUILD_CMD");
-}
-
-# Maintain a list of errors that have occured
-sub collate_error
-{
- #shift;
- my $err_type = shift(@_); # unused
- my $err_command = shift(@_);
-
- @errors[$err_count++] = "$err_command";
-}
-
-# Output the list of errors stored
-sub print_errors
-{
- my $count = 0;
-
- if($err_count gt 0)
- {
- if($err_count > 25)
- {
- print("$err_count Errors!! Ouch, looks like something screwed up.\n");
- }
- else
- {
- print("$err_count Error(s) encountered\n");
- }
-
- for($count; $count lt $err_count; $count++)
- {
- if(@errors[$count] ne "")
- {
- print("-> @errors[$count]\n");
- }
- }
- }
- #else
- #{
- # print("No errors encountered.\n");
- #}
-}
-
-# A wrapper for system() calls that catches errors
-sub syscmd
-{
- shift;
- my $command_string = shift(@_);
-
- # todo: identify multiple commands (commands split with ;'s)
- # todo: catch cons errors (cons doesn't return a value)
- system("$command_string");
- my $sysretval = $?;
-
- if(($sysretval gt 0) && ($sysretval lt 257))
- {
- @cmdlist = split(" ", $command_string);
- if(@cmdlist[0] eq "cp")
- {
- collate_error("copy", $command_string);
- }
- elsif(@cmdlist[0] eq "mv")
- {
- collate_error("move", $command_string);
- }
- elsif(@cmdlist[0] eq "cons")
- {
- collate_error("cons", $command_string);
- }
- elsif(@cmdlist[0] eq "cd")
- {
- collate_error("changed dir", $command_string);
- }
- elsif(@cmdlist[0] eq "mkdir")
- {
- collate_error("make dir", $command_string);
- }
- elsif(@cmdlist[0] eq "cat")
- {
- collate_error("cat", $command_string);
- }
- elsif(@cmdlist[0] eq "rm")
- {
- collate_error("remove", $command_string);
- }
- else
- {
- collate_error("unhandled", $command_string);
- }
- }
-
- return $sysretval;
-}
-
-
-# Close package
-1;