mirror of
https://port.numenaute.org/aleajactaest/khanat-code-old.git
synced 2024-12-30 20:30:53 +00:00
Changed: Launch upgrade script even if we don't want to launch client
This commit is contained in:
parent
192deb3bea
commit
c63932004e
1 changed files with 13 additions and 5 deletions
|
@ -933,10 +933,9 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
|
||||||
|
|
||||||
contentPrefix += "\n";
|
contentPrefix += "\n";
|
||||||
|
|
||||||
// append content of script
|
string contentSuffix;
|
||||||
fputs(contentPrefix.c_str(), fp);
|
|
||||||
fputs(content.c_str(), fp);
|
|
||||||
|
|
||||||
|
// if we need to restart Ryzom, we need to launch it in batch
|
||||||
std::string additionalParams;
|
std::string additionalParams;
|
||||||
|
|
||||||
if (Args.haveLongArg("profile"))
|
if (Args.haveLongArg("profile"))
|
||||||
|
@ -944,12 +943,18 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
|
||||||
additionalParams = "--profile " + Args.getLongArg("profile").front();
|
additionalParams = "--profile " + Args.getLongArg("profile").front();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef NL_OS_WINDOWS
|
||||||
|
// launch upgrade script if present (it'll execute additional steps like moving or deleting files)
|
||||||
|
contentSuffix += "if exist \"%UPGRADE_FILE%\" call \"%UPGRADE_FILE%\"\n";
|
||||||
|
|
||||||
if (wantRyzomRestart)
|
if (wantRyzomRestart)
|
||||||
{
|
{
|
||||||
// client shouldn't be in memory anymore else it couldn't be overwritten
|
// client shouldn't be in memory anymore else it couldn't be overwritten
|
||||||
contentSuffix += toString("start \"\" /D \"%%ROOTPATH%%\" \"%%RYZOM_CLIENT%%\" %s %%LOGIN%% %%PASSWORD%% %%SHARDID%%\n", additionalParams.c_str());
|
contentSuffix += toString("start \"\" /D \"%%ROOTPATH%%\" \"%%RYZOM_CLIENT%%\" %s %%LOGIN%% %%PASSWORD%% %%SHARDID%%\n", additionalParams.c_str());
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
if (wantRyzomRestart)
|
||||||
|
{
|
||||||
// wait until client not in memory anymore
|
// wait until client not in memory anymore
|
||||||
contentSuffix += toString("until ! pgrep %s > /dev/null; do sleep 1; done\n", CFile::getFilename(RyzomFilename).c_str());
|
contentSuffix += toString("until ! pgrep %s > /dev/null; do sleep 1; done\n", CFile::getFilename(RyzomFilename).c_str());
|
||||||
}
|
}
|
||||||
|
@ -967,10 +972,13 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
|
||||||
|
|
||||||
// launch new client
|
// launch new client
|
||||||
contentSuffix += toString("\"$RYZOM_CLIENT\" %s $LOGIN $PASSWORD $SHARDID\n", additionalParams.c_str());
|
contentSuffix += toString("\"$RYZOM_CLIENT\" %s $LOGIN $PASSWORD $SHARDID\n", additionalParams.c_str());
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// append content of script
|
||||||
|
fputs(contentPrefix.c_str(), fp);
|
||||||
|
fputs(content.c_str(), fp);
|
||||||
fputs(contentSuffix.c_str(), fp);
|
fputs(contentSuffix.c_str(), fp);
|
||||||
}
|
|
||||||
|
|
||||||
bool writeError = ferror(fp) != 0;
|
bool writeError = ferror(fp) != 0;
|
||||||
bool diskFull = ferror(fp) && errno == 28 /* ENOSPC */;
|
bool diskFull = ferror(fp) && errno == 28 /* ENOSPC */;
|
||||||
|
|
Loading…
Reference in a new issue