added the passing of nzbget-options to postprocess/nzbprocess scripts as environment variables

This commit is contained in:
Andrey Prygunkov
2008-12-01 18:38:54 +00:00
parent b1e1b0f6ac
commit 18e3dfb448
5 changed files with 93 additions and 33 deletions

View File

@@ -199,8 +199,29 @@ void ScriptController::SetEnvVar(const char* szName, const char* szValue)
void ScriptController::PrepareEnvironmentStrings()
{
//TODO: add program options
Options::OptEntries* pOptEntries = g_pOptions->LockOptEntries();
for (Options::OptEntries::iterator it = pOptEntries->begin(); it != pOptEntries->end(); it++)
{
Options::OptEntry* pOptEntry = *it;
char szVarname[1024];
snprintf(szVarname, sizeof(szVarname), "NZBOP_%s", pOptEntry->GetName());
// convert to upper case; replace "." with "_".
for (char* szPtr = szVarname; *szPtr; szPtr++)
{
if (*szPtr == '.')
{
*szPtr = '_';
}
*szPtr = toupper(*szPtr);
}
szVarname[1024-1] = '\0';
SetEnvVar(szVarname, pOptEntry->GetValue());
}
g_pOptions->UnlockOptEntries();
}
int ScriptController::Execute()