using System; using System.CommandLine; using System.CommandLine.Invocation; using System.Linq; using UpToolLib; using UpToolLib.Tool; namespace UpToolCLI { public static class Program { public static readonly UtLibFunctions Functions = new UtLibFunctions(); public static int Main(string[] args) { MutexLock.Lock(); try { ExternalFunctionalityManager.Init(Functions); XmlTool.FixXml(); RootCommand rootCommand = new RootCommand(); rootCommand.AddGlobalOption(new Option("--basic")); UtLibFunctions.Basic = args.Length > 0 && args[0] == "--basic"; PackageManagement.RegisterCommands(rootCommand); CacheManagement.RegisterCommands(rootCommand); ReposManagement.RegisterCommands(rootCommand); Other.RegisterCommands(rootCommand); return rootCommand.InvokeAsync(args).Result; } catch (Exception e) { Console.WriteLine($"FAILED: {e}"); return 1; } finally { MutexLock.Unlock(); } } } }