public int Main(string[] args) { #if DEBUG // Add our own debug helper because DNU is usually run from a wrapper script, // making it too late to use the DNX one. Technically it's possible to use // the DNX_OPTIONS environment variable, but that's difficult to do per-command // on Windows if (args.Any(a => string.Equals(a, "--debug", StringComparison.OrdinalIgnoreCase))) { args = args.Where(a => !string.Equals(a, "--debug", StringComparison.OrdinalIgnoreCase)).ToArray(); Console.WriteLine($"Process Id: {Process.GetCurrentProcess().Id}"); Console.WriteLine("Waiting for Debugger to attach..."); SpinWait.SpinUntil(() => Debugger.IsAttached); } #endif var app = new CommandLineApplication(); app.Name = "dnu"; app.FullName = "Microsoft .NET Development Utility"; var optionVerbose = app.Option("-v|--verbose", "Show verbose output", CommandOptionType.NoValue); app.HelpOption("-?|-h|--help"); app.VersionOption("--version", () => _runtimeEnv.GetShortVersion(), () => _runtimeEnv.GetFullVersion()); // Show help information if no subcommand/option was specified app.OnExecute(() => { app.ShowHelp(); return(2); }); // Defer reading option verbose until AFTER execute. var reportsFactory = new ReportsFactory(_runtimeEnv, () => optionVerbose.HasValue()); BuildConsoleCommand.Register(app, reportsFactory, _hostServices); CommandsConsoleCommand.Register(app, reportsFactory, _environment); InstallConsoleCommand.Register(app, reportsFactory, _environment); ListConsoleCommand.Register(app, reportsFactory, _environment); PackConsoleCommand.Register(app, reportsFactory, _hostServices); PackagesConsoleCommand.Register(app, reportsFactory); PublishConsoleCommand.Register(app, reportsFactory, _environment, _hostServices); RestoreConsoleCommand.Register(app, reportsFactory, _environment, _runtimeEnv); WrapConsoleCommand.Register(app, reportsFactory); FeedsConsoleCommand.Register(app, reportsFactory); ClearCacheConsoleCommand.Register(app, reportsFactory); try { return(app.Execute(args)); } catch (CommandParsingException ex) { AnsiConsole.GetError(useConsoleColor: _runtimeEnv.OperatingSystem == "Windows").WriteLine($"Error: {ex.Message}".Red().Bold()); ex.Command.ShowHelp(); return(1); } #if DEBUG catch { throw; }
public int Main(string[] args) { var app = new CommandLineApplication(throwOnUnexpectedArg: true); app.Name = "srclib-csharp"; app.FullName = "Scrlib C# toolchain"; app.HelpOption("-?|-h|--help"); app.VersionOption("--version", () => _runtimeEnv.GetShortVersion(), () => _runtimeEnv.GetFullVersion()); // Show help information if no subcommand/option was specified app.OnExecute(() => { app.ShowHelp(); return(2); }); ScanConsoleCommand.Register(app, _env); GraphConsoleCommand.Register(app, _env, _loadContextAccessor, _runtimeEnv); DepresolveConsoleCommand.Register(app, _env, _runtimeEnv); return(app.Execute(args)); }