public int ParseAndRunArgument()

in Amazon.KinesisTap.DiagnosticTool.Core/Commands/ConfigValidatorCommand.cs [48:112]


        public int ParseAndRunArgument(string[] args)
        {
            if (args.Length == 1 || args.Length == 2)
            {
                try
                {
                    string configPath = null;
                    IList<string> messages;

                    var ConfigFileValidator = new ConfigValidator(AppContext.BaseDirectory, _sourceValidators, _loadConfigFile);
                    var isValid = false;

                    if (args.Length == 2)
                    {
                        configPath = args[1];
                        isValid = ConfigFileValidator.ValidateSchema(configPath, out messages);
                    }
                    else
                    {
                        isValid = ConfigFileValidator.ValidateSchema(Utility.GetKinesisTapConfigPath(), Constant.CONFIG_FILE, out messages);
                    }

                    Console.WriteLine("Diagnostic Test #1: Pass! Configuration file is a valid JSON object.");

                    if (isValid)
                    {
                        Console.WriteLine("Diagnostic Test #2: Pass! Configuration file has the valid JSON schema!");
                    }
                    else
                    {
                        Console.WriteLine("Diagnostic Test #2: Fail! Configuration file doesn't have the valid JSON schema: ");
                        foreach (var message in messages)
                        {
                            Console.WriteLine(message);
                        }

                        Console.WriteLine("Please fix the Configuration file to match the JSON schema");
                    }

                    return Constant.NORMAL;
                }
                catch (FormatException ex)
                {
                    Console.WriteLine("Diagnostic Test #1: Fail! Configuration file is not a valid JSON object.");
                    Console.WriteLine(ex.Message);
                    return Constant.INVALID_FORMAT;
                }
                catch (FileNotFoundException ex)
                {
                    Console.WriteLine("Diagnostic Test #1: Fail! Configuration file is not found.");
                    Console.WriteLine(ex.ToString());
                    return Constant.RUNTIME_ERROR;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    return Constant.RUNTIME_ERROR;
                }
            }
            else
            {
                WriteUsage();
                return Constant.INVALID_ARGUMENT;
            }
        }