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