diff --git a/setup/Setup.cpp b/setup/Setup.cpp index 6d94b972f..a736bec0b 100755 --- a/setup/Setup.cpp +++ b/setup/Setup.cpp @@ -2273,16 +2273,29 @@ void CampoSetup::UnzipSystem(const wxString& strPrgLocPath) const //aggiorna l'install.ini in base al numero di patch e versione dell'ultimo file zip di sistema //ci vuole un giro allucinogeno per trasformare il .zip in .ini e togliere quel cazzo di 1 in fondo - wxFileName strLastFile(asFilesList[uFilesToCopy - 1]); + wxFileName strLastFile(asFilesList[uFilesToCopy - 1]); //zip con path completo wxString strWrk = strLastFile.GetName(); strWrk.Truncate(strWrk.Len() - 1); strLastFile.SetName(strWrk); strLastFile.SetExt("ini"); - strWrk = strLastFile.GetFullName(); - //adesso che ha trovato quello sporco ultimo .ini prende versione e patch - CampoIniFile SyLastPatch(strWrk, "sy"); - const wxString strVersion = SyLastPatch.Get("Versione"); - const wxString strPatch = SyLastPatch.Get("Patch"); + strWrk = strLastFile.GetFullPath(); + + //adesso che ha trovato quello sporco ultimo .ini prende versione e patch e le copia nell'install.ini.. + //..nella dir dei programmi; lo fa paragrafo x paragrafo ([sy],[sy1]..) + //potrebbe sembrare assurdo un for, ma e' per futuri sottomoduli con numero > 1 + for (int j = 0; j < 2; j++) + { + wxString strParagraph = "sy"; + if (j > 0) + strParagraph << j; + CampoIniFile SyLastPatch(strWrk, strParagraph); + const wxString strVersion = SyLastPatch.Get("Versione"); + const wxString strPatch = SyLastPatch.Get("Patch"); + + CampoIniFile InstallIni(strPrgLocPath + "/install.ini", strParagraph); + InstallIni.Set("Versione", strVersion); + InstallIni.Set("Patch", strPatch); + } } } @@ -2296,6 +2309,8 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e)) wxFileName strPath = argv[0]; strPath.SetCwd(); + // 1) RACCOLTA PARAMETRI GENERALI INSTALLAZIONE (tipo,path,cartelle,servers,...) + //------------------------------------------------------------------------------ //tipo di installazione/aggiornamento const unsigned int uInstallationType = pWizard->GetInstallationType(); const bool bNewInstallation = uInstallationType < 3; @@ -2313,7 +2328,10 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e)) //creazione della directory dei dati (compreso l'intero albero directory) CheckAndMakeDir(strDataPath, "dati"); } + + // 2) COPIA DEI FILES DI INSTALLAZIONE DALLA CARTELLA CAMPO (E SUBDIRS) (SU CD) ALLA CARTELLA DESTINAZIONE + //-------------------------------------------------------------------------------------------------------- //copia del contenuto della cartella campo nella cartella di destinazione (installaz/aggiornam) //per prima cosa cerca la cartella dei files sorgente... wxArrayString asFilesList; @@ -2394,7 +2412,10 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e)) } } //if (!strFileCurr.IsEmpty().. } //for(size_t... - + + + // 3) COMPILAZIONE CAMPO.INI CON CONFIGURAZIONE NUOVA INSTALLAZIONE + //----------------------------------------------------------------- //adesso deve compilare il campo.ini se nuova installazione.. if (bNewInstallation) { @@ -2426,7 +2447,11 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e)) if (pWizard->GetInstUseDict()) CampoIniSrv.Set("Dictionary", pWizard->GetSrvDict()); } - } + } //if(bNewInstallation... + + + // 4) COMPILAZIONE\AGGIORNAMENTO INSTALL.INI CON DISKPATH + //------------------------------------------------------- //..e modificare comunque l'install.ini aggiornando eventualmente l'origine dei programmi //parentesi necessaria per la scrittura immediata (non cancellare! serve per debug) { @@ -2442,6 +2467,10 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e)) CampoInstall.Set("DiskPath", strSrc); } } + + + // 5) CREAZIONE AUTOSTART DEI SERVERS (SE CI SONO) + //------------------------------------------------ //solo se sta installando campo in postazione server e deve installare un gestore di servizi.. //..avvia la procedura della creazione dell'autostart(un casino) if (bInstallLurch) @@ -2451,21 +2480,23 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e)) } - // 2) procede poi al caricamento delle patch eventuali di sistema all'interno della dir 'program' + // 6) AGGIORNAMENTO DEL MODULO SY CON EVENTUALI PATCH PRESENTI IN PROGRAM DEL CD E AGGIORNAMENTO INSTALL.INI + //---------------------------------------------------------------------------------------------------------- + //procede poi al caricamento delle patch eventuali di sistema all'interno della dir 'program' e al.. + //..conseguente riaggiornamento del livello versione/patch del SY in install.ini UnzipSystem(strPrgLocPath); - // 3) riaggiorna eventualmente il livello versione/patch del SY in install.ini - - // 4) lanciare ba1.exe -6 in uscita (non va qui! e' solo per ricordarsi di farlo!) - - //creazione dell'icona sul desktop + // 7) CREAZIONE DELL'ICONA SUL DESKTOP + //------------------------------------ const wxFileName strExe(strPrgLocPath, wxT("ba0.exe")); const bool bDesktopShortcut = pWizard->GetDesktopShortcut(); if (bDesktopShortcut) CreateIcon(CSIDL_COMMON_DESKTOPDIRECTORY, strExe); - // 1) terminato il tutto scrive/aggiorna/lascia stare il campo.stp + + // 8) AGGIORNAMENTO CAMPO.STP + //--------------------------- if (bNewInstallation) { CampoIniFile CampoStp("C:\\campo.stp", ""); @@ -2476,6 +2507,7 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e)) ::wxMessageBox(wxT("Installazione terminata"), APPNAME, wxOK | wxICON_INFORMATION); m_pMainFrame->Destroy(); + //lanciare ba1.exe -6 in uscita (non va qui! e' solo per ricordarsi di farlo!) } bool CampoSetup::OnInit()