#!/usr/bin/perl # # PlayBuild-Check.pl v1.0.0 # # Reads PlayBuild.txt and PlayBuildXMAC in the desired folder and looks for .AHV data. # Outputs logs of builds that can be removed from text files. # my $c_streamingBuildData = "\\\\streaming.myco.net\\streaming\\builds"; my $c_streamingPlayBuildData = "\\\\streaming.myco.net\\streaming\\PlayBuildData"; use strict; use warnings; my @validLangs = ( #"base", "enUS", ); #------------------------------------------------------------------------------- # Parse through PlayBuild.TXT's and output results #------------------------------------------------------------------------------- sub ParsePlayBuildTxt { open NEWPLAYBUILDFILE, ">", "$c_streamingPlayBuildData\\PlayBuild.txt.good"; open PLAYBUILDLOGFILE, ">", "$c_streamingPlayBuildData\\PlayBuild.txt.check"; open FILE, "<", "$c_streamingPlayBuildData\\PlayBuild.txt" or die "Failed to open PlayBuild.txt"; my %buildhash; while (my $line = ) { my $success = 0; my ($build) = $line =~ s/\n//; if (!-f "$c_streamingBuildData\\${line}\\PlayBuild_IX86.AHV") { print ("${line}: PlayBuild_IX86.AHV does not exist\n"); print PLAYBUILDLOGFILE ("${line}: PlayBuild_IX86.AHV does not exist\n"); $success = 0; } else { $success = 1; } if ($success eq 1) { # Only add unique directories to the list if (!exists $buildhash{lc("${line}")}) { $buildhash{lc(${line})} = 1; print NEWPLAYBUILDFILE ("${line}\n"); print PLAYBUILDLOGFILE ("${line}: Pass\n"); } else { print PLAYBUILDLOGFILE ("${line}: Duplicate\n"); } } } close PLAYBUILDLOGFILE; close NEWPLAYBUILDFILE; } sub ParsePlayBuildXMACTxt { open NEWPLAYBUILDFILE, ">", "$c_streamingPlayBuildData\\PlayBuildXMAC.txt.good"; open PLAYBUILDLOGFILE, ">", "$c_streamingPlayBuildData\\PlayBuildXMAC.txt.check"; my %buildhash; open FILE, "<", "$c_streamingPlayBuildData\\PlayBuildXMAC.txt" or die "Failed to open PlayBuildXMAC.txt"; while (my $line = ) { my ($build) = $line =~ s/\n//; if (!-f "$c_streamingBuildData\\${line}\\PlayBuild_XMAC.AHV") { print ("${line}: PlayBuild_XMAC.AHV does not exist\n"); print PLAYBUILDLOGFILE ("${line}: PlayBuild_XMAC.AHV does not exist\n"); } else { # Only add unique directories to the list if (!exists $buildhash{lc("${line}")}) { $buildhash{lc(${line})} = 1; print NEWPLAYBUILDFILE ("${line}\n"); print PLAYBUILDLOGFILE ("${line}: Pass\n"); } else { print PLAYBUILDLOGFILE ("${line}: Duplicate\n"); } } } close FILE; close PLAYBUILDLOGFILE; close NEWPLAYBUILDFILE; } sub renameTxtFiles { unlink "$c_streamingPlayBuildData\\PlayBuild.txt"; rename "$c_streamingPlayBuildData\\PlayBuild.txt.good", "$c_streamingPlayBuildData\\PlayBuild.txt"; unlink "$c_streamingPlayBuildData\\PlayBuildXMAC.txt"; rename "$c_streamingPlayBuildData\\PlayBuildXMAC.txt.good", "$c_streamingPlayBuildData\\PlayBuildXMAC.txt"; } #------------------------------------------------------------------------------- # Main entry function #------------------------------------------------------------------------------- sub Main { ParsePlayBuildTxt(); ParsePlayBuildXMACTxt(); renameTxtFiles(); } Main();