using System.Diagnostics; namespace NubLang.CLI; public static class Archive { public static async Task Invoke(string fileName, params IEnumerable objectFiles) { using var process = new Process(); process.StartInfo = new ProcessStartInfo("ar", ["rcs", fileName, ..objectFiles]) { UseShellExecute = false, RedirectStandardOutput = true, RedirectStandardError = true, CreateNoWindow = true }; process.Start(); await process.WaitForExitAsync(); var errors = await process.StandardError.ReadToEndAsync(); if (!string.IsNullOrWhiteSpace(errors)) { await Console.Error.WriteLineAsync("ar error when archiving:\n" + errors); } return process.ExitCode == 0; } }