コード例 #1
0
        public static void Main(string[] args)
        {
            bool otherwise = false;

            if (args.Length >= 1)
            {
                switch (args[0])
                {
                case "new":
                    if (args.Length == 2)
                    {
                        using (var newP = CallDotnet(new[] { "new console -o", args[1] }))
                        {
                            newP.BeginOutputReadLine();
                            newP.BeginErrorReadLine();
                            newP.WaitForExit();

                            Thread.Sleep(10);    // For safety reason.
                        }
                        File.Delete(Path.Combine(args[1], "Program.cs"));
                    }
                    else
                    {
                        InvalidInput(args.SubArray(2));
                    }

                    otherwise = true;
                    break;

                case "run":
                    foreach (FileInfo file in new DirectoryInfo(Environment.CurrentDirectory).GetFiles())
                    {
                        if (file.Extension != ".csp")
                        {
                            continue;
                        }
                        var t = new Translater(file.FullName);
                        t.Output();
                        if (!t.Success)
                        {
                            continue;
                        }
                        using (var runP = CallDotnet("run"))
                        {
                            runP.BeginOutputReadLine();
                            runP.BeginErrorReadLine();
                            runP.WaitForExit();

                            Thread.Sleep(10);    // For safety reason.
                        }
                    }

                    otherwise = true;
                    break;

                case "--help":
                    Console.WriteLine(help.help_txt);

                    otherwise = true;
                    break;

                case "--version":
                    Console.WriteLine("Csp.net 版本" + Assembly.GetExecutingAssembly().GetName().Version);
                    Console.Write(".NET Core SDK 版本");
                    CallDotnet("--version");

                    otherwise = true;
                    break;

                default:
                    CallDotnet(args);

                    otherwise = true;
                    break;
                }
            }
            if (!otherwise)
            {
                Console.WriteLine(help.help_txt);
            }
#if DEBUG
            Console.ReadKey();
#endif
        }