From 9e3482c307cb549692cf3938af7adf9f70c341db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=AD=20Climent?= Date: Sun, 9 Feb 2025 00:13:05 +0100 Subject: [PATCH] Bootstrap vcpkg the first time it gets updated. --- .../Vcpkg.cs | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/UniGetUI.PackageEngine.Managers.Vcpkg/Vcpkg.cs b/src/UniGetUI.PackageEngine.Managers.Vcpkg/Vcpkg.cs index c973d25cb..af474f00c 100644 --- a/src/UniGetUI.PackageEngine.Managers.Vcpkg/Vcpkg.cs +++ b/src/UniGetUI.PackageEngine.Managers.Vcpkg/Vcpkg.cs @@ -21,6 +21,8 @@ public class Vcpkg : PackageManager public Dictionary TripletSourceMap; public static Uri URI_VCPKG_IO = new Uri("https://vcpkg.io/"); + private bool hasBeenBootstrapped; + public Vcpkg() { Dependencies = [ @@ -373,6 +375,30 @@ public override void RefreshPackageIndexes() processLogger.AddToStdOut(p.StandardOutput.ReadToEnd()); processLogger.AddToStdErr(p.StandardError.ReadToEnd()); processLogger.Close(p.ExitCode); + + if (!hasBeenBootstrapped) + { + p = new() + { + StartInfo = new ProcessStartInfo + { + FileName = "cmd.exe", + WorkingDirectory = vcpkgRoot, + Arguments = "/C .\\bootstrap-vcpkg.bat", + UseShellExecute = false, + // RedirectStandardOutput = true, + // RedirectStandardError = true, + CreateNoWindow = true + } + }; + IProcessTaskLogger processLogger2 = TaskLogger.CreateNew(LoggableTaskType.RefreshIndexes, p); + p.Start(); + p.WaitForExit(); + // processLogger2.AddToStdOut(p.StandardOutput.ReadToEnd()); + // processLogger2.AddToStdErr(p.StandardError.ReadToEnd()); + processLogger2.Close(p.ExitCode); + hasBeenBootstrapped = true; + } } public static Tuple GetVcpkgPath()