using Updater.Core; namespace Updater; internal sealed class Program { static int Main(string[] args) { var logger = new ConsoleLogger(); Options? options; try { options = Options.Parse(args); } catch (Exception ex) { logger.Error($"Arguments error: {ex.Message}"); Console.WriteLine(Options.Usage); return ExitCodes.InvalidArgs; } var extractor = new ZipExtractor(logger); var installer = new SafeFileInstaller(logger); var procMgr = new ProcessManager(logger); var app = new UpdaterApp(logger, extractor, installer, procMgr); return app.Run(options); } }