-// Copyright (C) 2007-2009 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include <stdlib.h>
#include <iostream>
+#include <stdlib.h>
#include <Batch_config.h>
#include "Batch_CommunicationProtocol.hxx"
-#include "Batch_CommunicationProtocolRSH.hxx"
-#include "Batch_CommunicationProtocolSH.hxx"
-#include "Batch_CommunicationProtocolSSH.hxx"
+#ifdef HAS_RSH
+ #include "Batch_CommunicationProtocolRSH.hxx"
+#endif
+#ifdef HAS_SH
+ #include "Batch_CommunicationProtocolSH.hxx"
+#endif
+#ifdef HAS_SSH
+ #include "Batch_CommunicationProtocolSSH.hxx"
+#endif
#include "Batch_APIInternalFailureException.hxx"
#include "Batch_RunTimeException.hxx"
return string("rm ") + path;
}
+ string CommunicationProtocol::getMakeDirectorySubCommand(const string & path) const
+ {
+ return string("mkdir -p ") + path;
+ }
+
int CommunicationProtocol::removeFile(const std::string & path,
const std::string & host,
const std::string & user) const
return status;
}
+ int CommunicationProtocol::makeDirectory(const std::string & path,
+ const std::string & host,
+ const std::string & user) const
+ {
+ string command = getExecCommand(getMakeDirectorySubCommand(path), host, user);
+ cout << command.c_str() << endl;
+ int status = system(command.c_str());
+ return status;
+ }
+
string CommunicationProtocol::commandStringFromArgs(const vector<string> & commandArgs) const
{
string commandStr;
for (unsigned int i=0 ; i<commandArgs.size() ; i++) {
if (i != 0) commandStr += " ";
- // if the argument contains spaces, we surround it with double quotes
+ // if the argument contains spaces, we surround it with simple quotes (Linux)
+ // or double quotes (Windows)
if (commandArgs[i].find(' ') != string::npos) {
commandStr += string("\"") + commandArgs[i] + "\"";
} else {