示例#1
0
        public static bool  fLoadModules(bool _bAutoStart = true)
        {
            bool _bFound = true;

            if (Data.oGuiConsole != null)
            {
                Data.bIWantGoToEnd  = true;
                GuiConsole.sFormCmd = "GoEnd";
                //fctbConsole.GoEnd();
            }

            nLoadModuleIndex = 0;
            foreach (string _sModule in Data.aRequiredModule)
            {
                ModuleData _oModule = ModuleData.fFindModule(_sModule);
                _oModule.fGetLocalVersions();

                //  Http.fGetHttp(  _oModule.sUrl_Project , fGetProjectData);//Get readme
                _oModule.fReadHttpModuleTags();
            }

            //Wait to finish
            while (ModuleData.nRequestTag > 0)
            {
                Thread.CurrentThread.Join(1);
            }

            List <ModuleLink> _aLink = new List <ModuleLink>();


            foreach (string _sModule in Data.aRequiredModule)
            {
                ModuleData _oModule = ModuleData.fFindModule(_sModule);
                if (_oModule.aLinkList.Count > 0)
                {
                    foreach (string _sKeyLink  in _oModule.aLinkList)
                    {
                        // Output.TraceWarning( "Recommended version:");
                        Output.TraceAction("Recommended version:" + _oModule.sName + " : " + _sKeyLink);
                        _aLink.Add(_oModule.aLink[_sKeyLink]);
                        break;
                    }
                }
                else
                {
                    Output.TraceError("Not found:" + _sModule);
                    _bFound = false;
                }
            }


            if (_aLink.Count > 0)
            {
                //   Output.TraceWarning( "Download? (yes / no)");
                Output.TraceWarning("Starting Download ... (press 'n' to cancel)");
                foreach (ModuleLink _oLink in _aLink)
                {
                    _oLink.fDownload();
                    while (_oLink.bDl_InProgress)
                    {
                        Thread.CurrentThread.Join(1);
                    }
                    _oLink.fExtract();
                    while (_oLink.oModule.bExtact_InProgress)
                    {
                        Thread.CurrentThread.Join(1);
                    }
                }
                Output.Trace("");
                Output.TraceGood("---------------- All Required Module Completed ------------------");
                foreach (ModuleLink _oLink in _aLink)
                {
                    Output.TraceAction(_oLink.oModule.sCurrFolder);
                }


                Output.TraceGood("-----------------------------------------------------------------");
                if (_bAutoStart)
                {
                    Data.sCmd = "StartBuild";
                }
            }

            return(_bFound);

            /*
             * foreach(ModuleLink _oLink in _aLink) {
             *     _oLink.fExtract();
             * }
             */

            //  Data.oMsgForm.fLoadNextModule();
        }