#pragma warning disable CS1998 protected override async Task <bool> Execute(Context context) { var toolchainDirs = new List <string> { Path.GetFileName(context.Properties.GetRequiredValue(KnownProperties.AndroidSdkDirectory)), Path.GetFileName(context.Properties.GetRequiredValue(KnownProperties.AndroidNdkDirectory)), }; var androidToolchain = new AndroidToolchain(); var androidPackages = new List <string> (); foreach (AndroidToolchainComponent component in androidToolchain.Components) { if (component == null) { continue; } Uri pkgUrl; if (component.RelativeUrl != null) { pkgUrl = new Uri(AndroidToolchain.AndroidUri, component.RelativeUrl); } else { pkgUrl = AndroidToolchain.AndroidUri; } pkgUrl = new Uri(pkgUrl, $"{component.Name}.zip"); androidPackages.Add($"{pkgUrl} {component.DestDir}"); } var brewTaps = new List <string> (); var brewPackages = new List <string> (); var pkgUrls = new List <string> (); GatherMacPackages(brewTaps, brewPackages, pkgUrls); var sb = new StringBuilder(File.ReadAllText(Configurables.Paths.PackageImageDependenciesTemplate)); sb.Replace("@TOOLCHAIN_DIRS@", MakeLines(toolchainDirs)); sb.Replace("@PACKAGES@", MakeLines(androidPackages)); sb.Replace("@BREW_TAPS@", MakeLines(brewTaps)); sb.Replace("@BREWS@", MakeLines(brewPackages)); sb.Replace("@PKG_URLS@", MakeLines(pkgUrls)); string outputFile = Configurables.Paths.PackageImageDependenciesOutput; Log.StatusLine($"Generating ", outputFile, tailColor: ConsoleColor.White); File.WriteAllText(outputFile, sb.ToString()); return(Utilities.MakeExecutable(outputFile, throwOnError: false)); string MakeLines(List <string> list) { return(String.Join("\n", list)); } }
public override void Generate(Context context) { var inputData = new StringBuilder(File.ReadAllText(InputPath, Encoding.UTF8)); foreach (var kvp in replacements) { string placeholder = kvp.Key.Trim(); if (String.IsNullOrEmpty(placeholder)) { continue; } inputData.Replace(placeholder, kvp.Value ?? String.Empty); } EnsureOutputDir(); string outputData = inputData.ToString(); File.WriteAllText(OutputPath, outputData, Utilities.UTF8NoBOM); if (IsExecutable) { Utilities.MakeExecutable(OutputPath); } if (!EchoOutput) { return; } Log.DebugLine(); Log.DebugLine("--------------------------------------------"); Log.DebugLine(outputData); Log.DebugLine("--------------------------------------------"); Log.DebugLine(); }