Skip to content
Snippets Groups Projects
Commit 34abdc54 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

force to re-choose exe if exe path is absolute and does not point to an existing file

parent f929fa17
No related branches found
No related tags found
No related merge requests found
...@@ -1810,12 +1810,26 @@ void onelabGroup::rebuildSolverList() ...@@ -1810,12 +1810,26 @@ void onelabGroup::rebuildSolverList()
rebuildTree(); rebuildTree();
} }
static bool needToChooseExe(const std::string &exe)
{
// no exe given
if(exe.empty()) return true;
// exe is given with absolute path to non-existing file
if(exe[0] == '/' || exe[0] == '\\' || (exe.size() > 2 && exe[1] == ':')){
if(StatFile(exe)) return true;
}
return false;
}
void onelabGroup::addSolver(const std::string &name, const std::string &executable, void onelabGroup::addSolver(const std::string &name, const std::string &executable,
const std::string &remoteLogin, int index) const std::string &remoteLogin, int index)
{ {
onelab::server::citer it = onelab::server::instance()->findClient(name); onelab::server::citer it = onelab::server::instance()->findClient(name);
if(it != onelab::server::instance()->lastClient()){ if(it != onelab::server::instance()->lastClient()){
if(executable.empty()) onelab_choose_executable_cb(0, (void *)it->second); if(needToChooseExe(executable))
onelab_choose_executable_cb(0, (void *)it->second);
return; // solver already exists return; // solver already exists
} }
...@@ -1834,7 +1848,8 @@ void onelabGroup::addSolver(const std::string &name, const std::string &executab ...@@ -1834,7 +1848,8 @@ void onelabGroup::addSolver(const std::string &name, const std::string &executab
remoteLogin); remoteLogin);
c->setIndex(index); c->setIndex(index);
opt_solver_name(index, GMSH_SET, name); opt_solver_name(index, GMSH_SET, name);
if(executable.empty()) onelab_choose_executable_cb(0, (void *)c); if(needToChooseExe(executable))
onelab_choose_executable_cb(0, (void *)c);
opt_solver_remote_login(index, GMSH_SET, remoteLogin); opt_solver_remote_login(index, GMSH_SET, remoteLogin);
FlGui::instance()->onelab->rebuildSolverList(); FlGui::instance()->onelab->rebuildSolverList();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment