public void Failed_verb_parsing_prints_particular_help_screen()
        {
            string invokedVerb = null;
            object invokedVerbInstance = null;

            var options = new OptionsWithVerbsHelp();
            var testWriter = new StringWriter();
            ReflectionHelper.AssemblyFromWhichToPullInformation = Assembly.GetExecutingAssembly();
            var parser = new CommandLine.Parser(with => with.HelpWriter = testWriter);
            var result = parser.ParseArguments(new string[] { "clone", "--no_hardlinks" }, options,
                (verb, subOptions) =>
                    {
                        invokedVerb = verb;
                        invokedVerbInstance = subOptions;
                    });

            result.Should().BeFalse();

            var helpText = testWriter.ToString();
            Console.WriteLine(helpText);
            var lines = helpText.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
            // Verify just significant output
            lines[5].Trim().Should().Be("--no-hardlinks    Optimize the cloning process from a repository on a local");
            lines[6].Trim().Should().Be("filesystem by copying files.");
            lines[7].Trim().Should().Be("-q, --quiet       Suppress summary message.");

            invokedVerb.Should().Be("clone");
            invokedVerbInstance.Should().Be(null);
        }
Example #2
0
    static void Main(string[] args)
    {
      // Parse command line options
      var mpOptions = new CommandLineOptions();
      var parser = new CommandLine.Parser(with => with.HelpWriter = Console.Out);
      parser.ParseArgumentsStrict(args, mpOptions, () => Environment.Exit(1));

      List<string> products = new List<string>
      {
        "MediaPortal Setup TV", // Legacy folders for TVE3 support
        "MediaPortal TV Server", // Legacy folders for TVE3 support
        "MP2-Client",
        "MP2-Server",
        "MP2-ClientLauncher",
        "MP2-ServiceMonitor"
      };

      string dataPath = !string.IsNullOrEmpty(mpOptions.DataDirectory) ?
        mpOptions.DataDirectory :
        Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);

      string outputPath = !string.IsNullOrEmpty(mpOptions.OutputDirectory) ?
        mpOptions.OutputDirectory :
        Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "MediaPortal2-Logs");

      try
      {
        CollectLogFiles(dataPath, outputPath, products);
      }
      catch (Exception ex)
      {
        Console.WriteLine("Exception while collecting log files: {0}", ex);
      }
    }
        public static TOptions ParseArguments <TOptions>(this CommandLine.Parser parser, string[] args) where TOptions : new()
        {
            TOptions options = new TOptions();

            parser.ParseArguments(args, options);
            return(options);
        }
Example #4
0
        public void Failed_verb_parsing_prints_particular_help_screen()
        {
            string invokedVerb         = null;
            object invokedVerbInstance = null;

            var options    = new OptionsWithVerbsHelp();
            var testWriter = new StringWriter();

            ReflectionHelper.AssemblyFromWhichToPullInformation = Assembly.GetExecutingAssembly();
            var parser = new CommandLine.Parser(with => with.HelpWriter = testWriter);
            var result = parser.ParseArguments(new string[] { "clone", "--no_hardlinks" }, options,
                                               (verb, subOptions) =>
            {
                invokedVerb         = verb;
                invokedVerbInstance = subOptions;
            });

            result.Should().BeFalse();

            var helpText = testWriter.ToString();

            Console.WriteLine(helpText);
            var lines = helpText.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

            // Verify just significant output
            lines[5].Trim().Should().Be("--no-hardlinks    Optimize the cloning process from a repository on a local");
            lines[6].Trim().Should().Be("filesystem by copying files.");
            lines[7].Trim().Should().Be("-q, --quiet       Suppress summary message.");

            invokedVerb.Should().Be("clone");
            invokedVerbInstance.Should().Be(null);
        }
Example #5
0
        static void Main(string[] args)
        {
            Thread.CurrentThread.Name = "Main";

            // Parse command line options
            var mpOptions = new CommandLineOptions();
            var parser    = new CommandLine.Parser(with => with.HelpWriter = Console.Out);

            parser.ParseArgumentsStrict(args, mpOptions, () => Environment.Exit(1));

            if (String.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("wix")))
            {
                Console.Write("WiX environment variable could not be found. Please reinstall WiX.");
                Environment.Exit(2);
            }

            if (!CreateTransforms(mpOptions))
            {
                Environment.Exit(3);
            }

            if (!MergeTransforms(mpOptions))
            {
                Environment.Exit(4);
            }
        }
Example #6
0
        static void Main(string[] args)
        {
            // Parse command line options
            var mpOptions = new CommandLineOptions();
            var parser    = new CommandLine.Parser(with => with.HelpWriter = Console.Out);

            parser.ParseArgumentsStrict(args, mpOptions, () => Environment.Exit(1));

            List <string> products = new List <string>
            {
                "MediaPortal Setup TV",  // Legacy folders for TVE3 support
                "MediaPortal TV Server", // Legacy folders for TVE3 support
                "MP2-Client",
                "MP2-Server",
                "MP2-ClientLauncher",
                "MP2-ServiceMonitor"
            };

            string dataPath = !string.IsNullOrEmpty(mpOptions.DataDirectory) ?
                              mpOptions.DataDirectory :
                              Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);

            string outputPath = !string.IsNullOrEmpty(mpOptions.OutputDirectory) ?
                                mpOptions.OutputDirectory :
                                Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "MediaPortal2-Logs");

            try
            {
                CollectLogFiles(dataPath, outputPath, products);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception while collecting log files: {0}", ex);
            }
        }
Example #7
0
        /// <summary>
        /// 应用程序入口
        /// </summary>
        /// <param name="args">命令行参数</param>
        static void Main(string[] args)
        {
            System.DateTime startTime = System.DateTime.Now;

            //-- 分析命令行参数
            var options = new Options();
            var parser  = new CommandLine.Parser(with => with.HelpWriter = Console.Error);

            if (parser.ParseArgumentsStrict(args, options, () => Environment.Exit(-1)))
            {
                //-- 执行导出操作
                try
                {
                    Run(options);
                }
                catch (Exception exp)
                {
                    Console.WriteLine("Error: " + exp.Message);
                }
            }

            //-- 程序计时
            System.DateTime endTime = System.DateTime.Now;
            System.TimeSpan dur     = endTime - startTime;
            Console.WriteLine(
                string.Format("[{0}]:\tConversion complete in [{1}ms].",
                              Path.GetFileName(options.ExcelPath),
                              dur.TotalMilliseconds)
                );
        }
Example #8
0
        static void Main(string[] args)
        {
            try
            {
                var options = new Options();

                if (args.Length == 0)
                {
                    Console.WriteLine(options.GetUsage());
                    Environment.Exit(0);
                }

                var parser = new CommandLine.Parser(with => with.HelpWriter = Console.Error);

                if (parser.ParseArgumentsStrict(args, options, () => Environment.Exit(1)))
                {
                    Command(options);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("{" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "}");
                Console.WriteLine(ex);
            }

            Environment.Exit(0);
        }
Example #9
0
        static int Main(string[] args)
        {
            var options = new Options();
            var parser  = new CommandLine.Parser(s => { s.MutuallyExclusive = false; });

            var isValid = parser.ParseArguments(args, options);

            if (!isValid)
            {
                Console.WriteLine(CommandLine.Text.HelpText.AutoBuild(options).ToString());
                return(-1);
            }

            try
            {
                Console.WriteLine("Get Hub info for serial: " + options.SMT_Serial);


                using (CLStoreEntities cx = new CLStoreEntities())
                {
                    var lhs = cx.LowesHubs.Where(l => l.smt_serial == options.SMT_Serial).OrderByDescending(l => l.date).First();
                    Console.WriteLine("Hub last tested: " + lhs.date);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + "\r\n" + ex.StackTrace);
                return(-2);
            }


            return(0);
        }
Example #10
0
        public void Parse_verbs_using_instance()
        {
            string invokedVerb         = null;
            object invokedVerbInstance = null;

            var proof   = new Random().Next(int.MaxValue);
            var options = new OptionsWithVerbs();

            options.CommitVerb.Should().NotBeNull();
            options.CommitVerb.CreationProof = proof;

            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(new string[] { "commit", "--amend" }, options,
                                               (verb, subOptions) =>
            {
                invokedVerb         = verb;
                invokedVerbInstance = subOptions;
            });

            result.Should().BeTrue();

            invokedVerb.Should().Be("commit");
            invokedVerbInstance.Should().BeOfType <CommitSubOptions>();

            // Check if the instance is the one provider by us (not by the parser)
            options.CommitVerb.CreationProof.Should().Be(proof);
            options.CommitVerb.Amend.Should().BeTrue();
        }
        public void Parse_strict_bad_input_fails_and_exits_with_verbs_when_get_usage_is_defined()
        {
            string invokedVerb         = null;
            object invokedVerbInstance = null;

            var options    = new OptionsWithVerbs();
            var testWriter = new StringWriter();

            ReflectionHelper.AssemblyFromWhichToPullInformation = Assembly.GetExecutingAssembly();
            var parser = new CommandLine.Parser(with => with.HelpWriter = testWriter);
            var result = parser.ParseArgumentsStrict(new string[] { "bad", "input" }, options,
                                                     (verb, subOptions) =>
            {
                invokedVerb         = verb;
                invokedVerbInstance = subOptions;
            },
                                                     () => Console.WriteLine("fake fail"));

            result.Should().BeFalse();

            var helpText = testWriter.ToString();

            Console.WriteLine(helpText);
            var lines = helpText.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

            // Did we really produced all help?
            lines.Should().HaveCount(n => n == 1);
            // Verify just significant output
            lines[0].Trim().Should().Be("verbs help index");

            invokedVerb.Should().Be("bad");
            invokedVerbInstance.Should().BeNull();
        }
Example #12
0
        public void Failed_parsing_prints_help_index()
        {
            string invokedVerb         = null;
            object invokedVerbInstance = null;

            var options    = new OptionsWithVerbs();
            var testWriter = new StringWriter();

            var parser = new CommandLine.Parser(with => with.HelpWriter = testWriter);
            var result = parser.ParseArguments(new string[] {}, options,
                                               (verb, subOptions) =>
            {
                invokedVerb         = verb;
                invokedVerbInstance = subOptions;
            });

            result.Should().BeFalse();

            invokedVerb.Should().BeEmpty();
            invokedVerbInstance.Should().BeNull();

            var helpText = testWriter.ToString();

            helpText.Should().Be("verbs help index");
        }
Example #13
0
        public void Failed_verb_parsing_prints_particular_help_screen()
        {
            string invokedVerb         = null;
            object invokedVerbInstance = null;

            var options    = new OptionsWithVerbs();
            var testWriter = new StringWriter();

            var parser = new CommandLine.Parser(with => with.HelpWriter = testWriter);
            var result = parser.ParseArguments(new string[] { "clone", "--no_hardlinks" }, options,
                                               (verb, subOptions) =>
            {
                invokedVerb         = verb;
                invokedVerbInstance = subOptions;
            });

            result.Should().BeFalse();

            invokedVerb.Should().Be("clone");
            invokedVerbInstance.Should().BeNull();

            var helpText = testWriter.ToString();

            helpText.Should().Be("help for: clone");
        }
Example #14
0
        public void Parse_verbs_using_instance()
        {
            string invokedVerb = null;
            object invokedVerbInstance = null;

            var proof = new Random().Next(int.MaxValue);
            var options = new OptionsWithVerbs();
            options.CommitVerb.Should().NotBeNull();
            options.CommitVerb.CreationProof = proof;

            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(new string[] { "commit", "--amend" }, options,
                (verb, subOptions) =>
                {
                    invokedVerb = verb;
                    invokedVerbInstance = subOptions;
                });

            result.Should().BeTrue();

            invokedVerb.Should().Be("commit");
            invokedVerbInstance.Should().BeOfType<CommitSubOptions>();

            // Check if the instance is the one provider by us (not by the parser)
            options.CommitVerb.CreationProof.Should().Be(proof);
            options.CommitVerb.Amend.Should().BeTrue();
        }
Example #15
0
        /// <summary>
        /// 应用程序入口
        /// </summary>
        /// <param name="args">命令行参数</param>
        static void Main(string[] args)
        {
            System.DateTime startTime = System.DateTime.Now;

            //-- 分析命令行参数
            var options = new Options();
            var parser = new CommandLine.Parser(with => with.HelpWriter = Console.Error);

            if (parser.ParseArgumentsStrict(args, options, () => Environment.Exit(-1)))
            {
                //-- 执行导出操作
                try
                {
                    Run(options);
                }
                catch (Exception exp)
                {
                    Console.WriteLine("Error: " + exp.Message);
                }
            }

            //-- 程序计时
            System.DateTime endTime = System.DateTime.Now;
            System.TimeSpan dur = endTime - startTime;
            Console.WriteLine(
                string.Format("[{0}]:\t转换完成[{1}毫秒].",
                Path.GetFileName(options.ExcelPath),
                dur.Milliseconds)
                );
        }
Example #16
0
        static void Main(string[] args)
        {
            var options = new Options();
            var parser  = new CommandLine.Parser(with => with.HelpWriter = Console.Error);

            if (parser.ParseArgumentsStrict(args, options, () => { Environment.Exit(-2); }))
            {
                options.BoundaryCheck();

                if (string.IsNullOrEmpty(options.InputFile) && string.IsNullOrEmpty(options.InputFileList))
                {
                    Console.WriteLine("Neither input file nor input file list is specified");
                    Environment.Exit(-2);
                }

                if (!string.IsNullOrEmpty(options.InputFile) && !string.IsNullOrEmpty(options.InputFileList))
                {
                    Console.WriteLine("Both input file and input file list are specified");
                    Environment.Exit(-2);
                }

                int returnValue = Run(options);

                if (returnValue != 0)
                {
                    Environment.Exit(returnValue);
                }
            }
        }
Example #17
0
        public void Parse_verbs_create_instance()
        {
            string invokedVerb = null;
            object invokedVerbInstance = null;

            var options = new OptionsWithVerbs();
            options.AddVerb.Should().BeNull();

            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(new string[] {"add", "-p", "untracked.bin"} , options,
                (verb, subOptions) =>
                {
                    invokedVerb = verb;
                    invokedVerbInstance = subOptions;
                });

            result.Should().BeTrue();

            invokedVerb.Should().Be("add");
            invokedVerbInstance.Should().BeOfType<AddSubOptions>();

            // Parser has built instance for us
            options.AddVerb.Should().NotBeNull();
            options.AddVerb.CreationProof.Should().NotHaveValue();
            options.AddVerb.Patch.Should().BeTrue();
            options.AddVerb.FileName[0].Should().Be("untracked.bin");
        }
Example #18
0
        //class person { public string name { get; set; } }
        static void Main(string[] args)
        {
            //var persons = new[] {
            //    new person { name = "personA" },
            //    new person { name = "personAA"},
            //    new person { name = "personB" }
            //};

            //var filteredPersons =
            //    persons
            //        .Where(p => { var x = p.name.ToLower(); return x.EndsWith("a"); })
            //        .Where(p => p.name.ToLower().Count(c => c == 'a') > 0);

            var procname = System.Diagnostics.Process.GetCurrentProcess().ProcessName;

            Console.WriteLine(procname + ' ' + string.Join(" ", args));

            var parser = new CommandLine.Parser(ps => { ps.MutuallyExclusive = true; ps.HelpWriter = Console.Out; });

            if (!parser.ParseArguments(args, Options))
            {
                return;
            }
            var assemblyName = GetAssemblyName(Options.InputFile);

            if (!File.Exists(assemblyName))
            {
                Console.WriteLine("The specified file {0} cannot be found", assemblyName);
                return;
            }
            string outfile = GetFilePath();

            // TODO: how to get this from the command line?
            EntityDescriptor descriptor;

            if (assemblyName.Contains("Northwind"))
            {
                descriptor = new NorthwindEntityDescriptor();
            }
            else
            {
                descriptor = new EntityDescriptor();
            }

            var metadata = Generator.Generate(assemblyName, descriptor);
            var json     = ToJson(metadata);

            if (outfile != null)
            {
                Console.WriteLine("Writing to " + outfile);
                File.WriteAllText(outfile, json);
            }
            else
            {
                Console.WriteLine(json);
            }
            Console.WriteLine("Done");

            Console.ReadKey();
        }
Example #19
0
        public void CreatePoolArgNeededTestParsArg()
        {
            var commandLineParser    = new CommandLine.Parser();
            CommandLineParser parser = new CommandLineParser(new OptionConverter(new JsonDeserializer()), commandLineParser, new ParserUsage(), new VerbFormater());
            ParseException    ex     = null;

            string[] argv = null;
            argv = new string[] { "pool", "create", "-p", "profile", "-i", "5" };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            argv = new string[] { "pool", "create", "--profile", "profile", "--instanceNodes", "5" };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            argv = new string[] { "pool", "create", "-n", "name", "-i", "5" };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            argv = new string[] { "pool", "create", "--name", "name", "--instanceNodes", "5" };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            argv = new string[] { "pool", "create", "-n", "name", "-p", "profile" };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            argv = new string[] { "pool", "create", "--name", "name", "--profile", "profile" };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            commandLineParser.Dispose();
        }
Example #20
0
        public static void Main(string[] args)
        {
            options = new Options();

            CommandLine.Parser parser = new CommandLine.Parser(with => with.HelpWriter = Console.Error);

            parser.ParseArgumentsStrict(args, options, () => Environment.Exit(-2));

            if (options.AccessKey == null || options.SecretKey == null)
            {
                Console.WriteLine(options.GetUsage());
                Environment.Exit(-2);
            }

            try
            {
                // ListVolumes(); // got for testing connectivity

                CheckForScheduledSnapshots();

                CheckForExpiredSnapshots();
            }
            catch (Exception err)
            {
                Console.WriteLine("Error from " + err.Source + ": " + err.Message);
                Environment.Exit(-2);
            }

            Environment.Exit(0);
        }
Example #21
0
        public static void Main(string[] args)
        {
            try {
                var p       = new Program();
                var options = new Options();

                var parser = new CommandLine.Parser(settings => settings.CaseSensitive = true);
                if (parser.ParseArguments(args, options))
                {
                    p.Run(options);
                }
                else
                {
                    // print help
                    Console.WriteLine(options.GetUsage());
                }

                if (options.Debug)
                {
                    Watch.PrintTasks();
                }
            } catch (Exception e) {
                ConsoleEx.PrintException(e.Message, e);
            }
        }
Example #22
0
        public void CreateTaskMissArgTestParsArg()
        {
            string name     = "NAME";
            string instance = "42";
            string profile  = "PROFILE";

            string[]          argv = null;
            var               commandLineParser = new CommandLine.Parser();
            CommandLineParser parser            = new CommandLineParser(new OptionConverter(new JsonDeserializer()), commandLineParser, new ParserUsage(), new VerbFormater());
            ParseException    ex = null;

            argv = new string[] { "task", "create", "--name", name, "--instance", instance };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            argv = new string[] { "task", "create", "--name", name, "--profile", profile };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            argv = new string[] { "task", "create", "--instance", instance, "--profile", profile };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            argv = new string[] { "task", "create", "-n", name, "-i", instance };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            argv = new string[] { "task", "create", "-n", name, "-p", profile };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            argv = new string[] { "task", "create", "-i", instance, "-p", profile };
            ex   = Assert.Throws <ParseException>(() => parser.Parse(argv));
            Assert.IsNotNull(ex);
            commandLineParser.Dispose();
        }
Example #23
0
        public void Parse_verbs_create_instance()
        {
            string invokedVerb         = null;
            object invokedVerbInstance = null;

            var options = new OptionsWithVerbs();

            options.AddVerb.Should().BeNull();

            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(new string[] { "add", "-p", "untracked.bin" }, options,
                                               (verb, subOptions) =>
            {
                invokedVerb         = verb;
                invokedVerbInstance = subOptions;
            });

            result.Should().BeTrue();

            invokedVerb.Should().Be("add");
            invokedVerbInstance.Should().BeOfType <AddSubOptions>();

            // Parser has built instance for us
            options.AddVerb.Should().NotBeNull();
            options.AddVerb.CreationProof.Should().NotHaveValue();
            options.AddVerb.Patch.Should().BeTrue();
            options.AddVerb.FileName[0].Should().Be("untracked.bin");
        }
        public void Parse_strict_bad_input_fails_and_exits_with_verbs()
        {
            string invokedVerb         = null;
            object invokedVerbInstance = null;

            var options    = new OptionsWithVerbsNoHelp();
            var testWriter = new StringWriter();

            ReflectionHelper.AssemblyFromWhichToPullInformation = Assembly.GetExecutingAssembly();
            var parser = new CommandLine.Parser(with => with.HelpWriter = testWriter);
            var result = parser.ParseArgumentsStrict(new string[] { "bad", "input" }, options,
                                                     (verb, subOptions) =>
            {
                invokedVerb         = verb;
                invokedVerbInstance = subOptions;
            },
                                                     () => Console.WriteLine("fake fail"));

            result.Should().BeFalse();

            var helpText = testWriter.ToString();

            Console.WriteLine(helpText);
            var lines = helpText.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

            // Did we really produced all help?
            lines.Should().HaveCount(n => n == 8);
            // Verify just significant output
            lines[5].Trim().Should().Be("add       Add file contents to the index.");
            lines[6].Trim().Should().Be("commit    Record changes to the repository.");
            lines[7].Trim().Should().Be("clone     Clone a repository into a new directory.");

            invokedVerb.Should().Be("bad");
            invokedVerbInstance.Should().BeNull();
        }
Example #25
0
        static void Main(string[] args)
        {
            Console.WriteLine("MetadataGenerator " + args.ToAggregateString(" "));
            var parser = new CommandLine.Parser(ps => { ps.MutuallyExclusive = true; ps.HelpWriter = Console.Out; });

            if (!parser.ParseArguments(args, Options))
            {
                return;
            }
            var assemblyName = GetAssemblyName(Options.InputFile);

            if (!File.Exists(assemblyName))
            {
                Console.WriteLine("The specified file {0} cannot be found", assemblyName);
                return;
            }

            var dbContextTypes = GetDbContextTypesFromAssembly(assemblyName);

            if (dbContextTypes.Length == 1 || Options.TypeName != null)
            {
                if (Options.TypeName != null)
                {
                    try
                    {
                        var type = dbContextTypes.SingleOrDefault(t => t.Name == Options.TypeName || t.FullName == Options.TypeName);
                        if (type != null)
                        {
                            ProcessType(type, Options.OutputFile ?? Options.TypeName + ".json");
                        }
                        else
                        {
                            Console.WriteLine("The type specified {0} can not be found in the assembly {1}",
                                              Options.TypeName, assemblyName);
                        }
                    }
                    catch (InvalidOperationException)
                    {
                        Console.WriteLine("There are several types named {0} in the assembly {1}",
                                          Options.TypeName, assemblyName);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                }
                else
                {
                    var type = dbContextTypes.First();
                    ProcessType(type, Options.OutputFile ?? type.FullName + ".json");
                }
            }
            else
            {
                // Hadle multitype scenario.
                //foreach (var type in dbContextTypes) {
                //}
            }
        }
Example #26
0
        static void Main(string[] args)
        {
            Console.WriteLine("MetadataGenerator " + args.ToAggregateString(" "));
            var parser = new CommandLine.Parser(ps => { ps.MutuallyExclusive = true; ps.HelpWriter = Console.Out; });

            if (!parser.ParseArguments(args, Options))
            {
                return;
            }
            var assemblyName = GetAssemblyName(Options.InputFile);

            if (!File.Exists(assemblyName))
            {
                Console.WriteLine("The specified file {0} cannot be found", assemblyName);
                return;
            }

            var dbContextTypes = GetDbContextTypesFromAssembly(assemblyName);

            if (dbContextTypes.Length == 1 || Options.TypeName != null)
            {
                if (Options.TypeName != null)
                {
                    try
                    {
                        var type = dbContextTypes.SingleOrDefault(t => t.Name == Options.TypeName || t.FullName == Options.TypeName);
                        if (type != null)
                        {
                            ProcessType(type, Options.OutputFile ?? Options.TypeName + ".json");
                        }
                        else
                        {
                            Console.WriteLine("The type specified {0} can not be found in the assembly {1}",
                                              Options.TypeName, assemblyName);
                        }
                    }
                    catch (InvalidOperationException)
                    {
                        Console.WriteLine("There are several types named {0} in the assembly {1}",
                                          Options.TypeName, assemblyName);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                }
                else
                {
                    var type = dbContextTypes.First();
                    ProcessType(type, Options.OutputFile ?? type.FullName + ".json");
                }
            }
            else
            {
                // Hadle multitype scenario.
                //foreach (var type in dbContextTypes) {
                //}
            }
        }
Example #27
0
        private static Arguments GetArguments(string[] args)
        {
            Arguments result = new Arguments();

            CommandLine.Parser parser = new CommandLine.Parser();
            parser.ParseArguments(args, result);
            return(result);
        }
        public void Passing_bad_value_to_a_nullable_enumeration_option_fails()
        {
            var options = new NullableTypesOptions();
            var parser  = new CommandLine.Parser();
            var result  = parser.ParseArguments(new string[] { "-e", "Overwrite" }, options);

            result.Should().BeFalse();
        }
        public void Parsing_two_mutually_exclusive_options_fails()
        {
            var parser = new CommandLine.Parser(new ParserSettings { MutuallyExclusive = true });
            var options = new OptionsWithDefaultSet();
            var result = parser.ParseArguments(new string[] { "-i", "1", "--file=mystuff.xml" }, options);

            result.Should().BeFalse();
        }
        public void Passing_no_value_to_a_nullable_integer_option_fails()
        {
            var options = new NullableTypesOptions();
            var parser  = new CommandLine.Parser();
            var result  = parser.ParseArguments(new string[] { "-int" }, options);

            result.Should().BeFalse();
        }
        public void Passing_no_value_to_a_nullable_integer_option_fails()
        {
            var options = new NullableTypesOptions();
            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(new string[] { "-int" }, options);

            result.Should().BeFalse();
        }
Example #32
0
        public void Passing_no_value_to_a_double_type_long_option_fails()
        {
            var options = new NumberSetOptions();
            var parser  = new CommandLine.Parser();
            var result  = parser.ParseArguments(new string[] { "--double" }, options);

            result.Should().BeFalse();
        }
Example #33
0
        public void Passing_double_value_to_float_option_must_fail_gracefully()
        {
            var options = new NumberSetOptions();
            var parser  = new CommandLine.Parser();
            var result  = parser.ParseArguments(new string[] { "-f", double.MaxValue.ToString(CultureInfo.InvariantCulture) }, options);

            result.Should().BeFalse();
        }
Example #34
0
        public void Parsing_non_existent_long_option_fails_without_throwing_an_exception()
        {
            var options = new SimpleOptions();
            var parser  = new CommandLine.Parser();
            var result  = parser.ParseArguments(new string[] { "--extend" }, options);

            result.Should().BeFalse();
        }
Example #35
0
        public void Using_wrong_case_with_default_fails()
        {
            var parser  = new CommandLine.Parser();
            var options = new MixedCaseOptions();
            var result  = parser.ParseArguments(new string[] { "-A", "alfa", "--Beta-Option", "beta" }, options);

            result.Should().BeFalse();
        }
        public void Parsing_mutually_exclusive_options_and_required_option_fails()
        {
            var options = new OptionsWithMultipleSetAndOneOption();
            var parser = new CommandLine.Parser(new ParserSettings { MutuallyExclusive = true });
            var result = parser.ParseArguments(new string[] { "-g167", "--hue", "205" }, options);

            result.Should().BeFalse();
        }
Example #37
0
        public void Value_list_with_max_elem_set_to_zero_failes()
        {
            var options = new OptionsWithValueListMaximumZero();
            var parser  = new CommandLine.Parser();
            var result  = parser.ParseArguments(new string[] { "some", "value" }, options);

            result.Should().BeFalse();
        }
Example #38
0
 public void Init()
 {
     CLILogsTest.SurchargeLogs();
     CmdLineParser = new CommandLine.Parser();
     string[] argv = new string[] { };
     CommandLineParser parserObj = new CommandLineParser(new OptionConverter(new JsonDeserializer()), CmdLineParser, new ParserUsage(), new VerbFormater());
     Parser = CmdLineParser.ParseArguments<Options.DefaultJob>(argv);
 }
        public void Parse_string_array_option_using_long_name_with_equal_sign()
        {
            var options = new SimpleOptionsWithArray();
            var parser  = new CommandLine.Parser();
            var result  = parser.ParseArguments(new string[] { "--strarr=apple", "kiwi" }, options);

            result.Should().BeTrue();
            base.ElementsShouldBeEqual(new string[] { "apple", "kiwi" }, options.StringArrayValue);
        }
Example #40
0
        public void Allow_single_dash_as_option_input_value()
        {
            var options = new SimpleOptions();
            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(new string[] { "--string", "-" }, options);

            result.Should().BeTrue();
            options.StringValue.Should().Be("-");
        }
        public void Between_value_options_order_matters()
        {
            var options = new SimpleOptionsWithValueOptionAndValueList();
            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(
                new string[] { "4321", "ofvalueoption", "-1234", "forvaluelist1", "forvaluelist2", "forvaluelist3" }, options);

            result.Should().BeFalse();
        }
        public void Value_list_with_max_elem_outside_bounds()
        {
            var options = new OptionsWithValueListMaximumThree();
            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(
                    new string[] { "file.a", "file.b", "file.c", "file.d" }, options);

            result.Should().BeFalse();
        }
        public void Parsing_one_mutually_exclusive_option_succeeds()
        {
            var options = new OptionsWithDefaultSet();
            var parser = new CommandLine.Parser(new ParserSettings {MutuallyExclusive = true});
            var result = parser.ParseArguments(new string[] { "--file=mystuff.xml" }, options);

            result.Should().BeTrue();
            options.FileName.Should().Be("mystuff.xml");
        }
        public void Parse_string_array_option_using_short_name()
        {
            var options = new SimpleOptionsWithArray();
            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(new string[] { "-z", "alfa", "beta", "gamma" }, options);

            result.Should().BeTrue();
            base.ElementsShouldBeEqual(new string[] { "alfa", "beta", "gamma" }, options.StringArrayValue);
        }
        public void Parse_string_array_option_using_long_name_with_equal_sign()
        {
            var options = new SimpleOptionsWithArray();
            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(new string[] { "--strarr=apple", "kiwi" }, options);

            result.Should().BeTrue();
            base.ElementsShouldBeEqual(new string[] { "apple", "kiwi" }, options.StringArrayValue);
        }
 public void Parsing_two_mutually_exclusive_options_in_two_set_succeeds()
 {
     var options = new OptionsWithMultipleSet();
     var parser = new CommandLine.Parser(new ParserSettings { MutuallyExclusive = true });
     var result = parser.ParseArguments(new string[] { "-g167", "--hue", "205" }, options);
     
     result.Should().BeTrue();
     options.Green.Should().Be((byte)167);
     options.Hue.Should().Be((short)205);
 }
Example #47
0
        public void Default_parsing_is_case_sensitive()
        {
            var parser = new CommandLine.Parser();
            var options = new MixedCaseOptions();
            var result = parser.ParseArguments(new string[] { "-a", "alfa", "--beta-OPTION", "beta" }, options);

            result.Should().BeTrue();
            options.AlfaValue.Should().Be("alfa");
            options.BetaValue.Should().Be("beta");
        }
Example #48
0
 public void Parse_string_option()
 {
     var options = new SimpleOptions();
     var parser = new CommandLine.Parser();
     var result = parser.ParseArguments(new string[] { "-s", "something" }, options);
     
     result.Should().BeTrue();
     options.StringValue.Should().Be("something");
     Console.WriteLine(options);
 }
        public void Setting_instance_is_not_reusable()
        {
            var settings = new ParserSettings(helpWriter: Console.Out);

            var parser = new CommandLine.Parser(settings);

            Assert.ThrowsDelegate act = () => { var parser2 = new CommandLine.Parser(settings); };

            Assert.Throws<InvalidOperationException>(act);
        }
        public void Setting_instance_became_immutable_after_being_consumed()
        {
            var settings = new ParserSettings { ParsingCulture = new CultureInfo("it-IT") };

            var parser = new CommandLine.Parser(settings);

            Assert.ThrowsDelegate act = () => { settings.HelpWriter = Console.Out; };

            Assert.Throws<InvalidOperationException>(act);
        }
        public void Correct_input_not_activates_help()
        {
            var options = new MockOptions();
            var writer = new StringWriter();
            var parser = new CommandLine.Parser(with => with.HelpWriter = writer);
            var result = parser.ParseArguments(
                    new string[] { "-imath.xml", "-oresult.xml" }, options);

            result.Should().BeTrue();;
            writer.ToString().Length.Should().Be(0);
        }
Example #52
0
        public static int Main(string[] args)
        {
            var options = new Options();
            var parser = new CommandLine.Parser(settings =>
            {
                settings.CaseSensitive = true;
                settings.HelpWriter = System.Console.Out;
            });
            try
            {
                if (parser.ParseArguments(args, options))
                {
                    // Validate the arguments.
                    options.ValidateOptions();

                    try
                    {
                        var message = string.Format("Processing file {0}...", options.InputFile);
                        System.Console.WriteLine(message);
                        Trace.TraceInformation(message);

                        var processor = new FileProcessor(options);
                        processor.Process();

                        message = string.Format("Done processing file {0}.", options.InputFile);
                        System.Console.WriteLine(message);
                        Trace.TraceInformation(message);
                    }
                    catch (Exception ex)
                    {
                        Trace.TraceError(string.Format("Exception occurred while trying to process the file. Exception: {0} {1}",
                            ex.Message, ex.StackTrace));
                        System.Console.Error.WriteLine("An error occurred while trying to process the file.");
                        return (int)ExitCode.Errored;
                    }
                }
            }
            catch (ArgumentNullException ex)
            {
                Trace.TraceError(string.Format("ArgumentNullException occurred while trying to parse arguments passed to the program. Exception: {0} {1}",
                    ex.Message, ex.StackTrace));
                System.Console.Error.WriteLine("An error occurred while trying to parse the arguments passed to the application.");
                return (int)ExitCode.ArgumentError;
            }
            catch (InvalidArgumentException ex)
            {
                Trace.TraceError(string.Format("InvalidArgumentException occurred while trying to parse arguments passed to the program. Exception: {0} {1}",
                    ex.Message, ex.StackTrace));
                System.Console.Error.WriteLine("The following argument is invalid: {0} Error: {1}", ex.InvalidParameterName, ex.Message);
                return (int)ExitCode.ArgumentError;
            }

            return (int)ExitCode.Success;
        }
        public void Setting_help_writer_using_constructor()
        {
            var writer = new StringWriter();
            var parser = new CommandLine.Parser(new ParserSettings(writer));
            var options = new SimpleOptionsWithHelpOption();
            
            bool success = parser.ParseArguments(new string[] {"--help"}, options);

            success.Should().BeFalse();
            writer.ToString().Should().Be("MockOptions::GetUsage()");
        }
        public void Parsing_mutually_exclusive_options_and_required_option_succeeds()
        {
            var options = new OptionsWithMultipleSetAndOneOption();
            var parser = new CommandLine.Parser(new ParserSettings { MutuallyExclusive = true });
            var result = parser.ParseArguments(new string[] { "-g100", "-h200", "-cRgbColorSet" }, options);

            result.Should().BeTrue();
            options.Green.Should().Be((byte)100);
            options.Hue.Should().Be((short)200);
            options.DefaultColorSet.Should().Be(ColorSet.RgbColorSet);
        }
Example #55
0
        public void Allow_single_dash_as_non_option_value()
        {
            var options = new SimpleOptionsWithValueList();
            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(new string[] { "-sparser.xml", "-", "--switch" }, options);

            result.Should().BeTrue();
            options.StringValue.Should().Be("parser.xml");
            options.BooleanValue.Should().BeTrue();
            options.Items.Count.Should().Be(1);
            options.Items[0].Should().Be("-");
        }
Example #56
0
        public void Parse_string_integer_bool_options()
        {
            var options = new SimpleOptions();
            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(
                    new string[] { "-s", "another string", "-i100", "--switch" }, options);

            result.Should().BeTrue();
            options.StringValue.Should().Be("another string");
            options.IntegerValue.Should().Be(100);
            options.BooleanValue.Should().BeTrue();
            Console.WriteLine(options);
        }
        public void Explicit_help_activation()
        {
            var options = new MockOptions();
            var writer = new StringWriter();
            var parser = new CommandLine.Parser(with => with.HelpWriter = writer);
            var result = parser.ParseArguments(
                    new string[] { "--help" }, options);

            result.Should().BeFalse();

            string helpText = writer.ToString();
            (helpText.Length > 0).Should().BeTrue();
        }
        public void Value_option_attribute_values_are_not_mandatory()
        {
            var options = new SimpleOptionsWithValueOption();
            var parser = new CommandLine.Parser();
            var result = parser.ParseArguments(
                new string[] { "--switch" }, options);

            result.Should().BeTrue();

            options.BooleanValue.Should().BeTrue();
            options.StringItem.Should().BeNull();
            options.IntegerItem.Should().Be(0);
            options.NullableDoubleItem.Should().NotHaveValue();
        }
        public void Bad_input_activates_help()
        {
            var options = new MockOptions();
            var writer = new StringWriter();
            var parser = new CommandLine.Parser(with => with.HelpWriter = writer);
            var result = parser.ParseArguments(
                    new string[] { "math.xml", "-oresult.xml" }, options);

            result.Should().BeFalse();

            string helpText = writer.ToString();
            (helpText.Length > 0).Should().BeTrue();

            Console.Write(helpText);
        }
    /// <summary>
    /// The main entry point for the MP2 server application.
    /// </summary>
    public static void Main(params string[] args)
    {
      // Parse command line options
      var mpOptions = new CommandLineOptions();
      var parser = new CommandLine.Parser(with => with.HelpWriter = Console.Out);
      parser.ParseArgumentsStrict(args, mpOptions, () => Environment.Exit(1));

      if (mpOptions.RunAsConsoleApp)
        new ApplicationLauncher(mpOptions.DataDirectory).RunAsConsole();
      else
      {
        ServiceBase[] servicesToRun = new ServiceBase[] { new WindowsService() };
        ServiceBase.Run(servicesToRun);
      }
    }