/** * Cleanup anything this build may leave behind and inform the user */ private void HandleFailure(String FailureMessage) { try { if (WorkingCL != -1) { P4.RevertAll(WorkingCL); P4.DeleteChange(WorkingCL); } SendCompletionMessage(false, FailureMessage); } catch (P4Exception P4Ex) { LogError("Failed to clean up P4 changelist: " + P4Ex.Message); } catch (Exception SendMailEx) { LogError("Failed to notify that build succeeded: " + SendMailEx.Message); } }
public override void ExecuteBuild() { Log("************************* UpdateCopyright"); var Wildcards = new List <string>() { "*.h", "*.cpp", "*.inl", "*.cs" }; var Dirs = new List <string>(); Dirs.Add(CombinePaths(CmdEnv.LocalRoot, "Engine", "Plugins")); { DirectoryInfo DirInfo = new DirectoryInfo(CmdEnv.LocalRoot); var TopLevelDirs = DirInfo.GetDirectories(); foreach (var TopLevelDir in TopLevelDirs) { if (DirectoryExists_NoExceptions(CombinePaths(TopLevelDir.FullName, "Source"))) { Dirs.Add(CombinePaths(TopLevelDir.FullName, "Source")); Dirs.Add(CombinePaths(TopLevelDir.FullName, "Build", "Scripts")); } } } { DirectoryInfo DirInfo = new DirectoryInfo(CombinePaths(CmdEnv.LocalRoot, "Samples", "SampleGames")); var TopLevelDirs = DirInfo.GetDirectories(); foreach (var TopLevelDir in TopLevelDirs) { if (DirectoryExists_NoExceptions(CombinePaths(TopLevelDir.FullName, "Source"))) { Dirs.Add(CombinePaths(TopLevelDir.FullName, "Source")); Dirs.Add(CombinePaths(TopLevelDir.FullName, "Build", "Scripts")); } } } { DirectoryInfo DirInfo = new DirectoryInfo(CombinePaths(CmdEnv.LocalRoot, "Samples", "Showcases")); var TopLevelDirs = DirInfo.GetDirectories(); foreach (var TopLevelDir in TopLevelDirs) { if (DirectoryExists_NoExceptions(CombinePaths(TopLevelDir.FullName, "Source"))) { Dirs.Add(CombinePaths(TopLevelDir.FullName, "Source")); Dirs.Add(CombinePaths(TopLevelDir.FullName, "Build", "Scripts")); } } } { DirectoryInfo DirInfo = new DirectoryInfo(CombinePaths(CmdEnv.LocalRoot, "Templates")); var TopLevelDirs = DirInfo.GetDirectories(); foreach (var TopLevelDir in TopLevelDirs) { if (DirectoryExists_NoExceptions(CombinePaths(TopLevelDir.FullName, "Source"))) { Dirs.Add(CombinePaths(TopLevelDir.FullName, "Source")); Dirs.Add(CombinePaths(TopLevelDir.FullName, "Build", "Scripts")); } } } var AllFiles = new List <string>(); foreach (var Dir in Dirs) { foreach (var Wildcard in Wildcards) { foreach (var ThisFile in CommandUtils.FindFiles_NoExceptions(Wildcard, true, Dir)) { if (!ThisFile.Contains(@"\ThirdParty\")) { Log("Source File: {0}", ThisFile); AllFiles.Add(ThisFile); } } } } int WorkingCL = -1; if (P4Enabled) { WorkingCL = P4.CreateChange(P4Env.Client, "Stat code surgery"); Log("Working in {0}", WorkingCL); } else { throw new AutomationException("this command needs to run with P4."); } foreach (var ToCheckOut in AllFiles) { if (P4.Edit_NoExceptions(WorkingCL, ToCheckOut)) { Log("Checked out {0}", ToCheckOut); } else if (ToCheckOut.Contains("CodeSurgery")) { Log("Couldn't check out {0}", ToCheckOut); } else { P4.RevertAll(WorkingCL); throw new AutomationException("Couldn't check out {0}", ToCheckOut); } } var Normal = new HashSet <string>(); var Missing = new HashSet <string>(); foreach (var ThisFile in AllFiles) { var FileText = ReadAllText(ThisFile); if (FileText.Contains("2013 Epic Games, Inc. All Rights Reserved.")) { FileText = FileText.Replace("2013 Epic Games, Inc. All Rights Reserved.", "2014 Epic Games, Inc. All Rights Reserved."); WriteAllText(ThisFile, FileText); Normal.Add(ThisFile); } else { var Lines = new List <string>(ReadAllLines(ThisFile)); Lines.Insert(0, "// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved."); WriteAllLines(ThisFile, Lines.ToArray()); Missing.Add(ThisFile); } } Log("Normal Copyright *************************"); foreach (var ThisFile in Normal) { Log(" {0}", ThisFile); } Log("Missing Copyright *************************"); foreach (var ThisFile in Missing) { Log(" {0}", ThisFile); } }