public void NoArgumentsShouldOutputHelp() { using (var programWriter = new StringWriter()) { var originalOut = Console.Out; try { Console.SetOut(programWriter); Program.Main(new string[0]); var modelBindingDefinition = Configuration.Configure <GitReleaseNotesArguments>(); var help = new HelpProvider().GenerateModelHelp(modelBindingDefinition); var bufferWidth = Console.IsOutputRedirected ? 80 : Console.BufferWidth; var f = new ConsoleHelpFormatter(bufferWidth, 1, 5); using (var helpWriter = new StringWriter()) { f.WriteHelp(help, helpWriter); programWriter.ToString().ShouldContain(helpWriter.ToString()); } } finally { Console.SetOut(originalOut); } } }
private static void ShowHelp(IModelBindingDefinition <ConversionOrder> argsDefinition) { var help = new Args.Help.HelpProvider().GenerateModelHelp(argsDefinition); var f = new ConsoleHelpFormatter(80, 1, 5); Console.WriteLine(f.GetHelp(help)); }
public static void WriteHelp() { var help = new HelpProvider().GenerateModelHelp(Configuration.Configure <Arguments>()); var f = new ConsoleHelpFormatter(Console.BufferWidth, 1, 5); Console.WriteLine(f.GetHelp(help)); }
/// <summary> /// Writes the help. /// </summary> /// <param name="writer">The writer.</param> /// <param name="windowWidth">Width of the window.</param> public static void WriteHelp(TextWriter writer, int windowWidth) { var argumentConfiguration = Configuration.Configure <Options>(); var help = new HelpProvider().GenerateModelHelp(argumentConfiguration); var helpFormatter = new ConsoleHelpFormatter(windowWidth, 1, 5); helpFormatter.WriteHelp(help, writer); }
public static void Main(string[] args) { AppLaunchingCommandLine commandLine; IModelBindingDefinition <AppLaunchingCommandLine> modelBindingDefinition = null; try { modelBindingDefinition = Configuration.Configure <AppLaunchingCommandLine>(); commandLine = modelBindingDefinition.CreateAndBind(args); /* * if (commandLine.ProductId == Guid.Empty) * { * Console.WriteLine(""); * Console.WriteLine("***Warning*** - no productId supplied"); * Console.WriteLine(""); * } */ } catch (Exception /*exception*/) { if (modelBindingDefinition != null) { var help = new HelpProvider(); var formatter = new ConsoleHelpFormatter(); var sw = new StringWriter(); var text = help.GenerateModelHelp(modelBindingDefinition); formatter.WriteHelp(text, sw); Console.Write(sw.ToString()); } else { Console.Write("Sorry - no help available!"); } return; } try { Console.WriteLine("AutomationHost starting"); using (var program = new Program(commandLine)) { Console.WriteLine("To show help, enter 'help'"); program.Run(); } } catch (QuitNowPleaseException) { Console.WriteLine("Goodbye"); } catch (Exception exception) { Console.WriteLine(string.Format("Exception seen {0} {1}", exception.GetType().FullName, exception.Message)); } }
private static void ShowHelp(IModelBindingDefinition <Options> argsConfig) { var helpProvider = new HelpProvider(); var help = helpProvider.GenerateModelHelp(argsConfig); var helpFormatter = new ConsoleHelpFormatter(); Console.WriteLine(helpFormatter.GetHelp(help)); Console.ReadKey(); }
public void VerifyEmptyModelTestDoesNotBreak() { var definition = Configuration.Configure <EmptyHelpModelTest>(); var help = new Help.HelpProvider().GenerateModelHelp(definition); var f = new ConsoleHelpFormatter(80, 1, 5); Assert.AreEqual("<command> \r\n\r\n\r\n", f.GetHelp(help)); }
public void VerifyHelpOutput() { var definition = Configuration.Configure <HelpModelTest>(); var help = new Help.HelpProvider().GenerateModelHelp(definition); var f = new ConsoleHelpFormatter(80, 1, 5); Assert.AreEqual(HelpOutput, f.GetHelp(help)); }
public void VerifyHelpOutput() { var definition = Configuration.Configure <HelpModelTest>(); var help = new Help.HelpProvider().GenerateModelHelp(definition); ConsoleHelpFormatter f = new ConsoleHelpFormatter(80, 1, 5); f.GetHelp(help).Should().Be.EqualTo(Properties.Resources.HelpOutput); }
static int Main(string[] args) { GitReleaseNotesEnvironment.Log = new ConsoleLog(); var modelBindingDefinition = Configuration.Configure <GitReleaseNotesArguments>(); if (args.Any(a => a == "/?" || a == "?" || a.Equals("/help", StringComparison.InvariantCultureIgnoreCase))) { var help = new HelpProvider().GenerateModelHelp(modelBindingDefinition); var f = new ConsoleHelpFormatter(); f.WriteHelp(help, Console.Out); return(0); } var exitCode = 0; var arguments = modelBindingDefinition.CreateAndBind(args); // TODO: Convert to context verification (we need the context to be valid, not the arguments) if (!ArgumentVerifier.VerifyArguments(arguments)) { return(1); } var context = arguments.ToContext(); try { var releaseNotesGenerator = new ReleaseNotesGenerator(context, new FileSystem.FileSystem()); releaseNotesGenerator.GenerateReleaseNotes(); Log.WriteLine("Done"); } catch (GitReleaseNotesException ex) { exitCode = -1; Log.WriteLine("An expected error occurred: {0}", ex.Message); } catch (Exception ex) { exitCode = -2; Log.WriteLine("An unexpected error occurred: {0}", ex.Message); } if (Debugger.IsAttached) { Console.WriteLine("Press any key to continue"); Console.ReadKey(); } return(exitCode); }
private static void ShowHelp(IModelBindingDefinition <GitReleaseNotesArguments> modelBindingDefinition, string reason = null) { var help = new HelpProvider().GenerateModelHelp(modelBindingDefinition); var f = new ConsoleHelpFormatter(); f.WriteHelp(help, Console.Out); if (reason != null) { Console.WriteLine(); Console.WriteLine(reason); } }
private static void ShowHelp(IModelBindingDefinition <GitReleaseNotesArguments> modelBindingDefinition, string reason = null) { var help = new HelpProvider().GenerateModelHelp(modelBindingDefinition); var bufferWidth = Console.IsOutputRedirected ? 80 : Console.BufferWidth; var f = new ConsoleHelpFormatter(bufferWidth, 1, 5); f.WriteHelp(help, Console.Out); if (reason != null) { Console.WriteLine(); Console.WriteLine(reason); } }
/// <summary> /// Parses the command line arguments into /// </summary> /// <param name="args">Array of command line arguments.</param> /// <returns>A set of options.</returns> private static Options ParseArguments(string[] args) { var optionModel = Args.Configuration.Configure <Options>(); var options = optionModel.CreateAndBind(args); if (options.Help) { var help = new Args.Help.HelpProvider().GenerateModelHelp(optionModel); var formatter = new ConsoleHelpFormatter(); Console.WriteLine(formatter.GetHelp(help)); } return(options); }
public void NoArgumentsShouldOutputHelp() { using (var programWriter = new StringWriter()) { Console.SetOut(programWriter); Program.Main(new string[0]); var modelBindingDefinition = Configuration.Configure <GitReleaseNotesArguments>(); var help = new HelpProvider().GenerateModelHelp(modelBindingDefinition); var f = new ConsoleHelpFormatter(80, 1, 5); using (var helpWriter = new StringWriter()) { f.WriteHelp(help, helpWriter); programWriter.ToString().ShouldContain(helpWriter.ToString()); } } }
public static int Main(string[] args) { var modelBindingDefinition = Args.Configuration.Configure <GitHubFlowArguments>(); var arguments = modelBindingDefinition.CreateAndBind(args); if (args.Any(a => a == "/?" || a == "?" || a.Equals("/help", StringComparison.InvariantCultureIgnoreCase))) { var help = new HelpProvider().GenerateModelHelp(modelBindingDefinition); var f = new ConsoleHelpFormatter(); f.WriteHelp(help, Console.Out); return(0); } var context = CreateContext(arguments); try { Run(context); using (var assemblyInfoUpdate = new AssemblyInfoUpdate(new FileSystem(), context)) { var execRun = RunExecCommandIfNeeded(context); var msbuildRun = RunMsBuildIfNeeded(context); if (!(execRun || msbuildRun)) { assemblyInfoUpdate.DoNotRestoreAssemblyInfo(); if (!context.CurrentBuildServer.IsRunningInBuildAgent()) { Console.WriteLine("WARNING: Not running in build server and /ProjectFile or /Exec arguments not passed"); Console.WriteLine(); Console.WriteLine("Run GitHubFlowVersion.exe /? for help"); } } } } catch (Exception ex) { Console.Error.WriteLine(ex); return(1); } return(0); }
static void Main(string[] args) { var model = Args.Configuration.Configure <ArgumentsModel>(); var command = model.CreateAndBind(args); if (command.Help) { var help = new HelpProvider().GenerateModelHelp(model); var cfmt = new ConsoleHelpFormatter(); Console.WriteLine(cfmt.GetHelp(help)); return; } var context = new InformationSchemaDbContext(); foreach (Table table in context.Set <Table>()) { Console.WriteLine($"{table.Catalog}.{table.Schema}.{table.Name}"); } }
static void Main(string[] args) { try { var definition = Args.Configuration.Configure <CommandObject>(); var command = definition.CreateAndBind(args); if (command.Help != null) { var help = new Args.Help.HelpProvider().GenerateModelHelp(definition); var f = new ConsoleHelpFormatter(80, 1, 5); Console.WriteLine(f.GetHelp(help)); return; } Console.WriteLine($"正在生成..."); Console.WriteLine($"目标文件夹:{command.TargetFolder}"); Console.WriteLine($"秘钥:{command.SecretKey}"); Console.WriteLine($"忽略文件:{ ((command.Ignore == null || command.Ignore.Count == 0) ? "无" : string.Join(", ", command.Ignore))}"); VersionService versionService = new VersionService(command.SecretKey); if (command.Ignore == null) { command.Ignore = new List <string>(2); } command.Ignore.Add(Path.GetFileNameWithoutExtension(typeof(Program).Assembly.Location)); command.Ignore.Add(versionFileName); command.Ignore.Add("Zl.AutoUpgrade.Core"); PackageVersionInfo info = versionService.ComputeVersionInfo(command.TargetFolder, command.Ignore.ToArray()); XmlSerializer.SaveToFile(info, System.IO.Path.Combine(command.TargetFolder, versionFileName)); Console.WriteLine($"生成完毕."); } catch (Exception exc) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(exc); Console.ResetColor(); } }
public static void Main(string[] args) { log4net.Config.XmlConfigurator.Configure(); var kernel = CreateKernel(); var loggerFactory = kernel.Get <ILoggerFactory>(); var logger = loggerFactory.GetCurrentClassLogger(); try { var command = Args.Configuration.Configure <Command>().CreateAndBind(args); if (command.Action.Equals(CommandOption.None)) { var definition = Args.Configuration.Configure <Command>(); var help = new Args.Help.HelpProvider().GenerateModelHelp(definition); var formatter = new ConsoleHelpFormatter(80, 1, 5); Console.WriteLine(formatter.GetHelp(help)); } else if (command.Action.Equals(CommandOption.Test)) { Console.WriteLine("For testing purposes!!!"); } else if (command.Action.Equals(CommandOption.CheckStatus)) { if (String.IsNullOrEmpty(command.Directory)) { Console.WriteLine("Directory does not exist!"); return; } Console.WriteLine("Searching '{0}' ...", command.Directory); var subDirectoryList = Directory.GetDirectories(command.Directory) .Select(d => new DirectoryInfo(d)) .Where(d => !d.Name.Equals(SystemVolumeInformationFolder)) .Where(d => !d.Name.Equals(RecycleBinFolder)) .OrderBy(d => d.Name) .ToList(); if (!subDirectoryList.Any()) { Console.WriteLine("The directory is empty!"); return; } Console.WriteLine("Directories found: {0}", subDirectoryList.Count); Console.WriteLine(); foreach (var subDirectory in subDirectoryList) { Console.WriteLine("Searching '{0}' ...", subDirectory.Name); var files = Directory.GetFiles(subDirectory.FullName, FilePostfixPattern) .Select(f => new FileInfo(f)) .OrderBy(f => f.LastWriteTime) .ToList(); if (!files.Any()) { Console.WriteLine("To process files found: {0}.", files.Count); } else { Console.WriteLine("To process files found: {0}, between '{1}' & '{2}'.", files.Count, files.FirstOrDefault().LastWriteTime.ToString("yyyymmdd HH:MM:ss"), files.LastOrDefault().LastWriteTime.ToString("yyyymmdd HH:MM:ss")); } } } else if (command.Action.Equals(CommandOption.DropDatabase)) { if (String.IsNullOrEmpty(command.Server)) { Console.WriteLine("Server does not exist!"); return; } if (String.IsNullOrEmpty(command.Database)) { Console.WriteLine("Database does not exist!"); return; } var databaseManager = new DatabaseManager(command.Server); databaseManager.DropDatabase(command.Database); } else if (command.Action.Equals(CommandOption.RestoreDatabase)) { if (String.IsNullOrEmpty(command.Server)) { Console.WriteLine("Server does not exist!"); return; } if (String.IsNullOrEmpty(command.Database)) { Console.WriteLine("Database does not exist!"); return; } if (String.IsNullOrEmpty(command.DatabaseBackupFile)) { Console.WriteLine("Database backup file does not exist!"); return; } var databaseRestoreSettings = new DatabaseRestoreSettings { DatabaseName = command.Database, BackupFilePath = command.DatabaseBackupFile, }; var databaseManager = new DatabaseManager(command.Server); databaseManager.RestoreDatabase(databaseRestoreSettings); } else { Console.WriteLine("Command cannot be found!"); Console.WriteLine(); } } catch (Exception ex) { logger.Error(ex.Message); Console.WriteLine("----> EXCEPTION: {0} <----", ex.Message); throw; } }
private static int GenerateReleaseNotes(string[] args) { var modelBindingDefinition = Args.Configuration.Configure <GitReleaseNotesArguments>(); if (args.Any(a => a == "/?" || a == "?" || a.Equals("/help", StringComparison.InvariantCultureIgnoreCase))) { var help = new HelpProvider().GenerateModelHelp(modelBindingDefinition); var f = new ConsoleHelpFormatter(); f.WriteHelp(help, Console.Out); return(0); } var arguments = modelBindingDefinition.CreateAndBind(args); if (!ArgumentVerifier.VerifyArguments(arguments)) { return(1); } var workingDirectory = arguments.WorkingDirectory ?? Directory.GetCurrentDirectory(); var gitDirectory = GitDirFinder.TreeWalkForGitDir(workingDirectory); if (string.IsNullOrEmpty(gitDirectory)) { throw new Exception("Failed to find .git directory."); } Console.WriteLine("Git directory found at {0}", gitDirectory); var repositoryRoot = Directory.GetParent(gitDirectory).FullName; var gitRepo = new Repository(gitDirectory); CreateIssueTrackers(gitRepo, arguments); IIssueTracker issueTracker = null; if (arguments.IssueTracker == null) { var firstOrDefault = _issueTrackers.FirstOrDefault(i => i.Value.RemotePresentWhichMatches); if (firstOrDefault.Value != null) { issueTracker = firstOrDefault.Value; } } if (issueTracker == null) { if (!_issueTrackers.ContainsKey(arguments.IssueTracker.Value)) { throw new Exception(string.Format("{0} is not a known issue tracker", arguments.IssueTracker.Value)); } issueTracker = _issueTrackers[arguments.IssueTracker.Value]; } if (!issueTracker.VerifyArgumentsAndWriteErrorsToConsole()) { return(1); } var fileSystem = new FileSystem.FileSystem(); var releaseFileWriter = new ReleaseFileWriter(fileSystem); string outputFile = null; var previousReleaseNotes = new SemanticReleaseNotes(); if (!string.IsNullOrEmpty(arguments.OutputFile)) { outputFile = Path.IsPathRooted(arguments.OutputFile) ? arguments.OutputFile : Path.Combine(repositoryRoot, arguments.OutputFile); previousReleaseNotes = new ReleaseNotesFileReader(fileSystem, repositoryRoot).ReadPreviousReleaseNotes(outputFile); } var categories = arguments.Categories == null ? Categories : Categories.Concat(arguments.Categories.Split(',')).ToArray(); TaggedCommit tagToStartFrom = arguments.AllTags ? GitRepositoryInfoFinder.GetFirstCommit(gitRepo) : GitRepositoryInfoFinder.GetLastTaggedCommit(gitRepo) ?? GitRepositoryInfoFinder.GetFirstCommit(gitRepo); var currentReleaseInfo = GitRepositoryInfoFinder.GetCurrentReleaseInfo(gitRepo); if (!string.IsNullOrEmpty(arguments.Version)) { currentReleaseInfo.Name = arguments.Version; currentReleaseInfo.When = DateTimeOffset.Now; } var releaseNotes = ReleaseNotesGenerator.GenerateReleaseNotes( gitRepo, issueTracker, previousReleaseNotes, categories, tagToStartFrom, currentReleaseInfo, issueTracker.DiffUrlFormat); var releaseNotesOutput = releaseNotes.ToString(); releaseFileWriter.OutputReleaseNotesFile(releaseNotesOutput, outputFile); return(0); }