/// <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(); } }
/// <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); }