コード例 #1
0
        private static void ThreadedBuild(Project proj)
        {
            Luminate luminate = Luminate.Singleton;

            DateTime date = DateTime.Now;

            string catenatedBuilds = "";

            foreach (string s in proj.Dependencies)
            {
                bool foundProject = false;

                for (var i = 0; i < luminate.mProjects.Count; i++)
                {
                    if (luminate.mProjects[i].Name == s)
                    {
                        foundProject = true;
                        Logger.Singleton.Log("Building " + luminate.mProjects[i].Name + " on " + date.ToShortDateString() + " @" + date.ToLongTimeString(), Logger.MessageType.MESSAGE);
                        Builder.Build(luminate.mProjects[i], null);
                        Logger.Singleton.Log("Build " + luminate.mProjects[i].Name + " Complete: " + proj.OutputFile + " on " + date.ToShortDateString() + " @" + date.ToLongTimeString(), Logger.MessageType.MESSAGE);

                        catenatedBuilds += luminate.mProjects[i].CompiledJS;
                        break;
                    }
                }

                if (!foundProject)
                {
                    Logger.Singleton.Log("Project Dependency " + s + " was not found for " + proj.Name + ".", Logger.MessageType.ERROR);
                }
            }

            Logger.Singleton.Log("Building " + proj.Name + " on " + date.ToShortDateString() + " @" + date.ToLongTimeString(), Logger.MessageType.MESSAGE);
            Builder.Build(proj, catenatedBuilds);
            Logger.Singleton.Log("Build " + proj.Name + " Complete: " +
                                 proj.OutputFile + " on " + date.ToShortDateString() + " @" + date.ToLongTimeString(), Logger.MessageType.MESSAGE);

            if (proj.UseFTP)
            {
                Logger.Singleton.Log("Uploading to " + proj.FTPLocation + " with user " +
                                     proj.FTPUser + "...", Logger.MessageType.MESSAGE);
            }

            luminate.mLexer.parse(proj.CompiledJS);

            // Save to the override file
            try
            {
                if (proj.OverridePath.Trim() != "")
                {
                    StreamWriter file = new StreamWriter(proj.OverridePath);
                    file.Write(proj.CompiledJS);
                    file.Close();
                }
            }
            catch (Exception ex)
            {
                Logger.Singleton.Log(ex.Message, Logger.MessageType.ERROR);
            }

            luminate.EnableBuild(true);
        }