tools/buildbot/symstore.pl
author David Anderson <dvander@alliedmods.net>
Wed Feb 25 19:22:36 2009 -0500 (2009-02-25)
changeset 2603 fa286305bd3f
parent 2395 5f0dcfc72e44
child 2723 d8cde305bb14
permissions -rwxr-xr-x
Allow for second private chat trigger (bug 3667, r,a11=pred).
dvander@2267
     1
#!/usr/bin/perl
dvander@2267
     2
dvander@2267
     3
use File::Basename;
dvander@2267
     4
dvander@2267
     5
my ($myself, $path) = fileparse($0);
dvander@2267
     6
chdir($path);
dvander@2267
     7
dvander@2267
     8
require 'helpers.pm';
dvander@2267
     9
dvander@2267
    10
chdir('..');
dvander@2267
    11
chdir('..');
dvander@2267
    12
dvander@2267
    13
our $SSH = 'ssh -i ../../smpvkey';
dvander@2267
    14
dvander@2267
    15
open(PDBLOG, 'OUTPUT/pdblog.txt') or die "Could not open pdblog.txt: $!\n";
dvander@2267
    16
dvander@2267
    17
#Sync us up with the main symbol store
dvander@2267
    18
rsync('[email protected]:~/public_html/symbols/', '..\\..\\symstore');
dvander@2267
    19
dvander@2267
    20
#Get version info
dvander@2267
    21
my ($version);
dvander@2267
    22
$version = Build::ProductVersion(Build::PathFormat('product.version'));
dvander@2292
    23
$version .= '-hg' . Build::HgRevNum('.');
dvander@2267
    24
dvander@2267
    25
my ($line);
dvander@2267
    26
while (<PDBLOG>)
dvander@2267
    27
{
dvander@2267
    28
	$line = $_;
dvander@2267
    29
	$line =~ s/\.pdb/\*/;
dvander@2267
    30
	chomp $line;
dvander@2267
    31
	Build::Command("symstore add /r /f \"$line\" /s ..\\..\\symstore /t \"SourceMod\" /v \"$version\" /c \"buildbot\"");
dvander@2267
    32
}
dvander@2267
    33
dvander@2267
    34
close(PDBLOG);
dvander@2267
    35
dvander@2393
    36
#Lowercase DLLs.  Sigh.
dvander@2393
    37
my (@files);
dvander@2393
    38
opendir(DIR, "..\\..\\symstore");
dvander@2393
    39
@files = readdir(DIR);
dvander@2393
    40
closedir(DIR);
dvander@2393
    41
dvander@2393
    42
my ($i, $j, $file, @subdirs);
dvander@2393
    43
for ($i = 0; $i <= $#files; $i++)
dvander@2393
    44
{
dvander@2393
    45
	$file = $files[$i];
dvander@2393
    46
	next unless ($file =~ /\.dll$/);
dvander@2393
    47
	next unless (-d "..\\..\\symstore\\$file");
dvander@2393
    48
	opendir(DIR, "..\\..\\symstore\\$file");
dvander@2393
    49
	@subdirs = readdir(DIR);
dvander@2393
    50
	closedir(DIR);
dvander@2395
    51
	for ($j = 0; $j <= $#subdirs; $j++)
dvander@2393
    52
	{
dvander@2393
    53
		next unless ($subdirs[$j] =~ /[A-Z]/);
dvander@2395
    54
		Build::Command("rename ..\\..\\symstore\\$file\\" . $subdirs[$j] . " " . lc($subdirs[$j]));
dvander@2393
    55
	}	
dvander@2393
    56
}
dvander@2393
    57
dvander@2267
    58
#Now that we're done, rsync back.
dvander@2268
    59
rsync('../../symstore/', '[email protected]:~/public_html/symbols');
dvander@2267
    60
dvander@2267
    61
sub rsync
dvander@2267
    62
{
dvander@2267
    63
	my ($from, $to) = (@_);
dvander@2267
    64
	
dvander@2267
    65
	Build::Command('rsync -av --delete -e="' . $SSH . '" ' . $from . ' ' . $to);
dvander@2267
    66
}