Add triggering
This commit is contained in:
parent
b7308e8f6d
commit
96e0393dd6
@ -84,6 +84,69 @@ bool cmCTestSubmit::SubmitUsingFTP(const std::string& localprefix,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool cmCTestSubmit::TriggerUsingHTTP(const std::vector<std::string>& files,
|
||||||
|
const std::string& remoteprefix,
|
||||||
|
const std::string& url)
|
||||||
|
{
|
||||||
|
CURL *curl;
|
||||||
|
CURLcode res = CURLcode();
|
||||||
|
FILE* ftpfile;
|
||||||
|
|
||||||
|
/* In windows, this will init the winsock stuff */
|
||||||
|
::curl_global_init(CURL_GLOBAL_ALL);
|
||||||
|
|
||||||
|
/* get a curl handle */
|
||||||
|
curl = curl_easy_init();
|
||||||
|
if(curl)
|
||||||
|
{
|
||||||
|
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
|
||||||
|
std::string::size_type cc, kk;
|
||||||
|
for ( cc = 0; cc < files.size(); cc ++ )
|
||||||
|
{
|
||||||
|
std::string file = remoteprefix + files[cc];
|
||||||
|
std::string ofile = "";
|
||||||
|
for ( kk = 0; kk < file.size(); kk ++ )
|
||||||
|
{
|
||||||
|
char c = file[kk];
|
||||||
|
char hex[4] = { 0, 0, 0, 0 };
|
||||||
|
hex[0] = c;
|
||||||
|
switch ( c )
|
||||||
|
{
|
||||||
|
case '+':
|
||||||
|
case '?':
|
||||||
|
case '/':
|
||||||
|
case '\\':
|
||||||
|
case '&':
|
||||||
|
case ' ':
|
||||||
|
case '=':
|
||||||
|
case '%':
|
||||||
|
sprintf(hex, "%%%02X", (int)c);
|
||||||
|
ofile.append(hex);
|
||||||
|
break;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ofile.append(hex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
std::string turl = url + "?xmlfile=" + ofile;
|
||||||
|
std::cout << "Trigger url: " << turl.c_str() << std::endl;
|
||||||
|
curl_easy_setopt(curl, CURLOPT_URL, turl.c_str());
|
||||||
|
res = curl_easy_perform(curl);
|
||||||
|
if ( res )
|
||||||
|
{
|
||||||
|
std::cout << "Error when uploading" << std::endl;
|
||||||
|
::curl_easy_cleanup(curl);
|
||||||
|
::curl_global_cleanup();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// always cleanup
|
||||||
|
::curl_easy_cleanup(curl);
|
||||||
|
}
|
||||||
|
::curl_global_cleanup();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool cmCTestSubmit::SubmitUsingSCP(const std::string& localprefix,
|
bool cmCTestSubmit::SubmitUsingSCP(const std::string& localprefix,
|
||||||
const std::vector<std::string>& files,
|
const std::vector<std::string>& files,
|
||||||
const std::string& remoteprefix,
|
const std::string& remoteprefix,
|
||||||
|
@ -42,6 +42,10 @@ public:
|
|||||||
const std::vector<std::string>& files,
|
const std::vector<std::string>& files,
|
||||||
const std::string& remoteprefix,
|
const std::string& remoteprefix,
|
||||||
const std::string& url);
|
const std::string& url);
|
||||||
|
|
||||||
|
bool TriggerUsingHTTP(const std::vector<std::string>& files,
|
||||||
|
const std::string& remoteprefix,
|
||||||
|
const std::string& url);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user