tools/buildbot/helpers.pm
author David Anderson <dvander@alliedmods.net>
Wed Feb 25 19:22:36 2009 -0500 (2009-02-25)
changeset 2603 fa286305bd3f
parent 2292 96bf4c760579
child 2723 d8cde305bb14
permissions -rw-r--r--
Allow for second private chat trigger (bug 3667, r,a11=pred).
     1 #!/usr/bin/perl
     2 
     3 use strict;
     4 use Cwd;
     5 
     6 package Build;
     7 
     8 our $SVN = "/usr/bin/svn";
     9 our $SVN_USER = 'dvander';
    10 our $SVN_ARGS = '';
    11 
    12 sub HgRevNum
    13 {
    14 	my ($path) = (@_);
    15 	my ($cd, $text, $rev);
    16 
    17 	$cd = Cwd::cwd();
    18 	chdir($path);
    19 	$text = `hg identify -n`;
    20 	chdir($cd);
    21 
    22 	chomp $text;
    23 	if ($text =~ /^(\d+)/)
    24 	{
    25 		return $1;
    26 	}
    27 
    28 	return 0;
    29 }
    30 
    31 sub SvnRevNum
    32 {
    33 	my ($str)=(@_);
    34 			
    35 	my $data = Command('svnversion -c ' . $str);
    36 	if ($data =~ /(\d+):(\d+)/)
    37 	{
    38 		return $2;
    39 	} elsif ($data =~ /(\d+)/) {
    40 		return $1;
    41 	} else {
    42 		return 0;
    43 	}
    44 }
    45 
    46 sub ProductVersion
    47 {
    48 	my ($file) = (@_);
    49 	my ($version);
    50 	open(FILE, $file) or die "Could not open $file: $!\n";
    51 	$version = <FILE>;
    52 	close(FILE);
    53 	chomp $version;
    54 	return $version;
    55 }
    56 
    57 sub Delete
    58 {
    59 	my ($str)=(@_);
    60 	if ($^O =~ /MSWin/)
    61 	{
    62 		Command("del /S /F /Q \"$str\"");
    63 		Command("rmdir /S /Q \"$str\"");
    64 	} else {
    65 		Command("rm -rf $str");
    66 	}
    67 	return !(-e $str);
    68 }
    69 
    70 sub Copy
    71 {
    72 	my ($src,$dest)=(@_);
    73 	if ($^O =~ /MSWin/)
    74 	{
    75 		Command("copy \"$src\" \"$dest\" /y");
    76 	} else {
    77 		Command("cp \"$src\" \"$dest\"");
    78 	}
    79 	return (-e $dest);
    80 }
    81 
    82 sub Move
    83 {
    84 	my ($src,$dest)=(@_);
    85 	if ($^O =~ /MSWin/)
    86 	{
    87 		Command("move \"$src\" \"$dest\"");
    88 	} else {
    89 		Command("mv \"$src\" \"$dest\"");
    90 	}
    91 	return (-e $dest);
    92 }
    93 
    94 sub Command
    95 {
    96 	my($cmd)=(@_);
    97 	print "$cmd\n";
    98 	return `$cmd`;
    99 }
   100 
   101 sub PathFormat
   102 {
   103 	my ($str)=(@_);
   104 	if ($^O =~ /MSWin/)
   105 	{
   106 		$str =~ s#/#\\#g;
   107 	} else {
   108 		$str =~ s#\\#/#g;
   109 	}
   110 	return $str;
   111 }
   112 
   113 sub SVN_Remove
   114 {
   115 	my ($file)=(@_);
   116 	my ($path, $name);
   117 	if ($^O =~ /MSWin/)
   118 	{
   119 		($path, $name) = ($file =~ /(.+)\/([^\/]+)$/);
   120 	} else {
   121 		($path, $name) = ($file =~ /(.+)\\([^\\]+)$/);
   122 	}
   123 	my $dir = Cwd::cwd();
   124 	chdir($path);
   125 	Command($SVN . ' ' . $SVN_ARGS . ' delete ' . $name);
   126 	chdir($dir);
   127 }
   128 
   129 sub SVN_Add
   130 {
   131 	my ($file)=(@_);
   132 	my ($path, $name);
   133 	if ($^O =~ /MSWin/)
   134 	{
   135 		($path, $name) = ($file =~ /(.+)\/([^\/]+)$/);
   136 	} else {
   137 		($path, $name) = ($file =~ /(.+)\\([^\\]+)$/);
   138 	}
   139 	my $dir = Cwd::cwd();
   140 	chdir($path);
   141 	Command($SVN . ' ' . $SVN_ARGS . ' add ' . $name);
   142 	chdir($dir);
   143 }
   144 
   145 return 1;