public static int Main(string[] args)
        {
            string input = null;
            string output = null;
            string markup = Markdown;

            var configuration = CommandLineParserConfigurator
                .Create()
                     .WithNamed("i", v => input = v)
                        .HavingLongAlias("input")
                        .Required()
                        .DescribedBy("path", "specifies the input path pointing to a xBehave/xUnit XML report.")
                    .WithNamed("o", v => output = v)
                        .HavingLongAlias("output")
                        .Required()
                        .DescribedBy("path", "specifies the output path where the generated markdown will be written to.")
                    .WithNamed("m", v => markup = v)
                        .HavingLongAlias("markup")
                        .DescribedBy($"markup [{Markdown} | {DokuWiki}]", "specifies which markup to use")
                .BuildConfiguration();

            var parser = new CommandLineParser(configuration);
            var parseResult = parser.Parse(args);

            if (!parseResult.Succeeded)
            {
                Usage usage = new UsageComposer(configuration).Compose();
                Console.WriteLine(parseResult.Message);
                Console.WriteLine("usage:" + usage.Arguments);
                Console.WriteLine("options");
                Console.WriteLine(usage.Options.IndentBy(4));
                Console.WriteLine();
                return InvalidFunction;
            }

            if (!File.Exists(input))
            {
                Console.WriteLine("Input file '{0}' does not exist, please define an existing file.", input);
                return FileNotFound;
            }

            IMarkupWriter markupWriter;
            switch (markup.ToLowerInvariant())
            {
                case Markdown:
                    markupWriter = new MarkdownWriter();
                    break;

                case DokuWiki:
                    markupWriter = new DokuWikiWriter();
                    break;

                default:
                    return InvalidMarkup;
            }

            var inputXml = XDocument.Load(input);

            var converter = new Converter(markupWriter);

            var outputMarkdown = converter.Convert(inputXml);

            using (var writer = new StreamWriter(output))
            {
                writer.Write(outputMarkdown);
            }

            return Ok;
        }
示例#2
0
        public static int Main(string[] args)
        {
            string input  = null;
            string output = null;
            string markup = Markdown;

            var configuration = CommandLineParserConfigurator
                                .Create()
                                .WithNamed("i", v => input = v)
                                .HavingLongAlias("input")
                                .Required()
                                .DescribedBy("path", "specifies the input path pointing to a xBehave/xUnit XML report.")
                                .WithNamed("o", v => output = v)
                                .HavingLongAlias("output")
                                .Required()
                                .DescribedBy("path", "specifies the output path where the generated markdown will be written to.")
                                .WithNamed("m", v => markup = v)
                                .HavingLongAlias("markup")
                                .DescribedBy($"markup [{Markdown} | {DokuWiki}]", "specifies which markup to use")
                                .BuildConfiguration();

            var parser      = new CommandLineParser(configuration);
            var parseResult = parser.Parse(args);

            if (!parseResult.Succeeded)
            {
                Usage usage = new UsageComposer(configuration).Compose();
                Console.WriteLine(parseResult.Message);
                Console.WriteLine("usage:" + usage.Arguments);
                Console.WriteLine("options");
                Console.WriteLine(usage.Options.IndentBy(4));
                Console.WriteLine();
                return(InvalidFunction);
            }

            if (!File.Exists(input))
            {
                Console.WriteLine("Input file '{0}' does not exist, please define an existing file.", input);
                return(FileNotFound);
            }

            IMarkupWriter markupWriter;

            switch (markup.ToLowerInvariant())
            {
            case Markdown:
                markupWriter = new MarkdownWriter();
                break;

            case DokuWiki:
                markupWriter = new DokuWikiWriter();
                break;

            default:
                return(InvalidMarkup);
            }

            var inputXml = XDocument.Load(input);

            var converter = new Converter(markupWriter);

            var outputMarkdown = converter.Convert(inputXml);

            using (var writer = new StreamWriter(output))
            {
                writer.Write(outputMarkdown);
            }

            return(Ok);
        }