diff --git a/contrib/onelab/OnelabClients.cpp b/contrib/onelab/OnelabClients.cpp index 2baffbc96ef450a73892f9dc41c8ea5835fea36e..0bd7f9b6550bf522e6dee958421cf4e245dd4cf1 100644 --- a/contrib/onelab/OnelabClients.cpp +++ b/contrib/onelab/OnelabClients.cpp @@ -518,8 +518,10 @@ void localSolverClient::GmshMerge(std::vector<std::string> choices) for(unsigned int i = 0; i < choices.size(); i++){ std::string fileName=getWorkingDir()+choices[i]; //checkIfPresent or make available locally - OLMsg::Info("Send merge request <%s>",fileName.c_str()); - OLMsg::MergeFile(fileName); + if(checkIfPresent(fileName)){ + OLMsg::Info("Send merge request <%s>",fileName.c_str()); + OLMsg::MergeFile(fileName); + } } } diff --git a/contrib/onelab/OnelabClients.h b/contrib/onelab/OnelabClients.h index 329297ee9253b4d30d9eb757381cc4c3ac1a97d6..9775d37e84b9fca30b4fff833a49bd747f3ce2ed 100644 --- a/contrib/onelab/OnelabClients.h +++ b/contrib/onelab/OnelabClients.h @@ -23,12 +23,12 @@ static std::string localFileTag("_"); enum parseMode {REGISTER, ANALYZE, COMPUTE, EXIT}; #if defined(WIN32) -const char dirSep='\\'; +static char dirSep='\\'; static std::string cmdSep(" & "); static std::string removeCmd("del "); static std::string lsCmd("dir "); #else -const char dirSep='/'; +static char dirSep='/'; static std::string cmdSep(" ; "); static std::string removeCmd("rm -rf "); static std::string lsCmd("ls "); diff --git a/contrib/onelab/OnelabParser.cpp b/contrib/onelab/OnelabParser.cpp index 86183f92d5e0339425712c7e3fc20476b1470d33..f8445ebf21d88db98203d0cf764d96b113d4bc53 100644 --- a/contrib/onelab/OnelabParser.cpp +++ b/contrib/onelab/OnelabParser.cpp @@ -1659,7 +1659,7 @@ void MetaModel::client_sentence(const std::string &name, arguments.size(), action.c_str()); } else if(!action.compare("alwaysCompute")){ - if(isTodo(REGISTER) || isTodo(ANALYZE)){ + if(isTodo(REGISTER)){ localSolverClient *c; if((c=findClientByName(name))){ c->compute(); @@ -1670,7 +1670,6 @@ void MetaModel::client_sentence(const std::string &name, } } else if(!action.compare("merge")){ - //if(isTodo(COMPUTE) && !OLMsg::GetErrorCount() && (OLMsg::hasGmsh)){ if( arguments.size() && isTodo(COMPUTE) && !OLMsg::GetErrorCount() && (OLMsg::hasGmsh)){ std::vector<std::string> choices; for(unsigned int i = 0; i < arguments.size(); i++){ @@ -1686,20 +1685,14 @@ void MetaModel::client_sentence(const std::string &name, } } else if(!action.compare("frontPage")){ - if( arguments.size() && OLMsg::hasGmsh ){ + if( isTodo(REGISTER) && OLMsg::hasGmsh && arguments.size() && !OLMsg::GetErrorCount()){ std::vector<std::string> choices; for(unsigned int i = 0; i < arguments.size(); i++){ choices.push_back(resolveGetVal(arguments[i])); } localSolverClient *c; if((c=findClientByName(name))) { - if(isTodo(REGISTER) && !OLMsg::GetErrorCount()) - if(onelab::server::instance()->getChanged(c->getName())){ - //c->compute(); - c->GmshMerge(choices); - //OLMsg::SetOnelabNumber("Gmsh/NeedReloadGeom",1,false); - //onelab::server::instance()->setChanged(false, c->getName()); - } + c->GmshMerge(choices); } else OLMsg::Error("Unknown client <%s>", name.c_str());