public override void ExecuteBuild() { var bLayered = ParseParam("layered"); var SourceDirectory = ParseParamValue("sourcedirectory", null); var TargetDirectory = ParseParamValue("targetdirectory", null); var CryptoKeysFile = ParseParamValue("cryptokeysjson", null); var Compressor = ParseParamValue("customcompressor", null); var Project = ParseParamValue("project", null); string ExtraArgs = ""; if (!string.IsNullOrEmpty(Compressor)) { ExtraArgs += "-customcompressor=" + Compressor; } if (Params.Contains("passargs")) { IEnumerable <string> ExtraArgArray = Params.Where((arg, index) => index > Array.IndexOf(Params, "passargs")); if (ExtraArgArray.Count() > 0) { ExtraArgs += " -" + string.Join(" -", ExtraArgArray); } } if (String.IsNullOrEmpty(SourceDirectory)) { throw new AutomationException("SourceDirectory is a required parameter"); } if (String.IsNullOrEmpty(TargetDirectory)) { throw new AutomationException("TargetDirectory is a required parameter"); } if (String.IsNullOrEmpty(CryptoKeysFile)) { throw new AutomationException("CryptoKeysJson is a required parameter"); } DirectoryInfo SourceDirectoryInfo = new DirectoryInfo(SourceDirectory); LogInformation("Extracting paks from {0} to {1}", SourceDirectory, TargetDirectory); FileReference ProjectFile = null; if (!string.IsNullOrEmpty(Project)) { ProjectFile = ProjectUtils.FindProjectFileFromName(Project); if (ProjectFile == null) { throw new AutomationException("Could not find project file based on {0}", Project); } } PackageUtils.ExtractPakFiles(SourceDirectoryInfo, TargetDirectory, CryptoKeysFile, ExtraArgs, bLayered, ProjectFile); }