Esempio n. 1
0
        /// <summary>Starts the application</summary>
        /// <param name="args">The arguments to start with</param>
        public static void Main(string[] args)
        {
            try {
                // Variables
                InputArguments input = InputArguments.Create(args);

                TypeInfo.ignorePrivate = !input.includePrivate;

                if (input.isList)
                {
                    TypeList list     = TypeList.GenerateList(input.assemblies.ToArray());
                    string   listJson = JsonConvert.SerializeObject(list, Formatting.Indented);

                    File.WriteAllText(input.output, listJson);
                    System.Console.WriteLine($"JSON file ({ input.output }) of listing every type successfully created!");
                    System.Environment.Exit(0);
                }
                else if (input.isHelp)
                {
                    DisplayHelp();
                }

                // Variables
                string   typePath   = input.typePath;
                string[] assemblies = input.assemblies.ToArray();
                TypeInfo info;
                string   json = "";

                if (TypeInfo.GenerateTypeInfo(assemblies, typePath, out info))
                {
                    json = JsonConvert.SerializeObject(info, Formatting.Indented);
                    File.WriteAllText(input.output, json);
                    System.Console.WriteLine($"JSON file ({ input.output }) of peek into type [{ typePath }] successfully created!");
                }
                else
                {
                    System.Console.WriteLine($"Type [{ typePath }] is not found!");
                    DisplayHelp();
                }
            } catch (System.IndexOutOfRangeException) {
                System.Console.WriteLine("Error: Output location not specified");
                DisplayHelp();
            } catch (System.Exception e) {
                System.Console.WriteLine($"Error: { e.Message }");
                DisplayHelp();
            }
        }
Esempio n. 2
0
        /// <summary>Creates a managed version of input arguments from the array of arguments</summary>
        /// <param name="args">The arguments the program started with</param>
        /// <returns>Returns a managed version of the input arguments</returns>
        public static InputArguments Create(string[] args)
        {
            // Variables
            InputArguments input = new InputArguments();

            for (int i = 0; i < args.Length; i++)
            {
                switch (args[i].ToLower())
                {
                case "-h":
                case "--help": { input.isHelp = true; } break;

                case "-l":
                case "--list": { input.isList = true; } break;

                case "-o":
                case "--out": { input.output = args[++i]; } break;

                case "-p":
                case "--include-private": { input.includePrivate = true; } break;

                default: {
                    if (input.typePath == "" && !input.isList)
                    {
                        input.typePath = args[i];
                    }
                    else
                    {
                        input.assemblies.Add(args[i]);
                    }
                } break;
                }
            }

            if (input.output == null)
            {
                input.output = (input.isList ? "listTypes.json" : "type.json");
            }
            input.isHelp = (input.isHelp || (!input.isList && input.typePath == ""));
            if (input.isList && input.typePath != "")
            {
                input.assemblies.Add(input.typePath);
                input.typePath = "";
            }

            return(input);
        }