public static void ConsoleMain()
        {
            if (Program.TypeName == null)
            {
                var types = Program.LoadedAssembly.GetTypes();

                if (Program.FileName == "")
                {
                    foreach (var type in types)
                    {
                        InstanceWriter.WriteToConsole(type);
                    }
                }
                else if (Program.HTMLMode)
                {
                    StringBuilder sb = new StringBuilder();

                    foreach (var type in types)
                    {
                        sb.AppendLine(InstanceWriter.GetHTMLText(type));
                    }

                    InstanceWriter.WriteHTML(Program.FileName, Program.LoadedAssembly.FullName, sb.ToString());

                    System.Diagnostics.Process.Start(Program.FileName);
                }
                else
                {
                    using (StreamWriter sw = new StreamWriter(Program.FileName))
                    {
                        foreach (var type in types)
                        {
                            InstanceWriter.WriteToTextFile(sw, type);
                        }
                    }
                }
            }
            else
            {
                var type = Program.LoadedAssembly.GetType(Program.TypeName);
                if (type == null)
                {
                    Console.WriteLine("ERROR 1001 : CAN'T LOAD " + Program.TypeName);
                    return;
                }

                if (Program.FileName == "")
                {
                    InstanceWriter.WriteToConsole(type);
                }
                else if (Program.HTMLMode)
                {
                    InstanceWriter.WriteHTML(Program.FileName, type.Name, InstanceWriter.GetHTMLText(type));

                    System.Diagnostics.Process.Start(Program.FileName);
                }
                else
                {
                    using (StreamWriter sw = new StreamWriter(Program.FileName))
                    {
                        InstanceWriter.WriteToTextFile(sw, type);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        static int Main(string[] args)
        {
            VisualMode = false;
            HTMLMode   = false;
            FileName   = "";
            TypeName   = null;

            if (args.Length == 0)
            {
                bool can_not_exit = true;

                while (can_not_exit)
                {
                    Console.Write("ShavedIce_ClassViewer " + FileName + "$ ");
                    string[] cmd = Console.ReadLine().SplitDoubleQuotation();

                    Console.WriteLine(cmd.ToStringAll(","));

                    if (cmd.Length == 0)
                    {
                        continue;
                    }

                    switch (cmd[0])
                    {
                    case "writeconsole":
                    case "print":
                    {
                        foreach (var type in LoadedAssembly.GetTypes())
                        {
                            InstanceWriter.WriteToConsole(type);
                        }
                    }
                    break;

                    case "writefile":
                    {
                        if (cmd.Length == 2)
                        {
                            using (StreamWriter sw = new StreamWriter(cmd[1]))
                            {
                                foreach (var type in LoadedAssembly.GetTypes())
                                {
                                    InstanceWriter.WriteToTextFile(sw, type);
                                }
                            }
                        }
                        else
                        {
                            Console.WriteLine("ARG COUNT IS WRONG");
                        }
                    }
                    break;

                    case "writehtml":
                    {
                        if (cmd.Length == 2)
                        {
                            StringBuilder sb = new StringBuilder();

                            foreach (var type in LoadedAssembly.GetTypes())
                            {
                                sb.AppendLine(InstanceWriter.GetHTMLText(type));
                            }

                            InstanceWriter.WriteHTML(cmd[1], LoadedAssembly.FullName, sb.ToString());

                            System.Diagnostics.Process.Start(cmd[1]);
                        }
                        else
                        {
                            Console.WriteLine("ARG COUNT IS WRONG");
                        }
                    }
                    break;

                    case "load":
                    {
                        if (cmd.Length == 2)
                        {
                            try
                            {
                                LoadedAssembly = Assembly.LoadFile(cmd[1]);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("CAN'T LOAD FILE\r\n" + e.ToString());
                            }
                        }
                        else
                        {
                            Console.WriteLine("ARG COUNT IS WRONG");
                        }
                    }
                    break;

                    case "exit":
                    {
                        can_not_exit = false;
                    }
                    break;

                    default:
                        continue;
                    }
                }

                return(0);
            }

            try
            {
                LoadedAssembly = Assembly.LoadFrom(args[0]);
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR 0002 : CAN'T LOAD ASSET FILE");
                return(-1);
            }

            for (int i = 1; i < args.Length; i++)
            {
                switch (args[i])
                {
                // Visual Mode
                case "-v":
                {
                    VisualMode = true;
                }
                break;

                // Output File
                case "-f":
                {
                    i++;
                    if (i == args.Length)
                    {
                        Console.WriteLine("ERROR 0003 : FILE OUTPUT COMMAND IS WRONG");
                        return(-1);
                    }
                    else
                    {
                        FileName = args[i];
                    }
                }
                break;

                // Type Name
                case "-t":
                {
                    i++;
                    if (i == args.Length)
                    {
                        Console.WriteLine("ERROR 0004 : TYPE COMMAND IS WRONG");
                        return(-1);
                    }
                    else
                    {
                        TypeName = args[i];
                    }
                }
                break;

                // HTML
                case "-html":
                {
                    HTMLMode = true;
                }
                break;

                default:
                {
                    Console.WriteLine("ERROR 0005 : ARGS AREN'T EXIST");
                }
                    return(-1);
                }
            }

            if (VisualMode)
            {
                Application.Run(new VisualMode());
            }
            else
            {
                ConsoleMode.ConsoleMain();
            }

            return(0);
        }