2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
|
|
|
|
#include "tasks.h"
|
|
|
|
#include "tconvert.h"
|
|
|
|
#include "casmfileinfo.h"
|
|
|
|
#include "util.h"
|
|
|
|
#include "texception.h"
|
|
|
|
#include "tsystem.h"
|
|
|
|
|
|
|
|
#define DDR_OUTPUTSCRIPT_FILENAME "D@D@R"
|
|
|
|
|
|
|
|
//==============================================================================
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
string SubmitPageTask::getFilePath() { return m_filePath; }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void SubmitPageTask::setFilePath(const string &filePath) {
|
|
|
|
m_filePath = filePath;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
string SubmitPageTask::getName() { return m_name; }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void SubmitPageTask::setName(const string &name) { m_name = name; }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
map<string, string> SubmitPageTask::getDependencies() { return m_depTasks; }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void SubmitPageTask::setDependencies(const map<string, string> &tasks) {
|
|
|
|
m_depTasks = tasks;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void SubmitPageTask::checkNameUnc() {
|
|
|
|
if (m_filePath == "") return;
|
|
|
|
|
|
|
|
TFilePath fp(m_filePath);
|
|
|
|
string uncString = "";
|
|
|
|
try {
|
|
|
|
uncString = convertToUncString(fp);
|
|
|
|
} catch (TException &) {
|
|
|
|
if (!TFileStatus(fp).doesExist()) {
|
|
|
|
string msg = toString(fp.getWideString()) + "\n";
|
|
|
|
msg += "File not found\n";
|
|
|
|
msg += "Please verify that the path is correct";
|
|
|
|
throw TException(msg);
|
|
|
|
}
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//==============================================================================
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
CasmTask2::CasmTask2() { setDefaultValue(); }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
CasmTask2::CasmTask2(const string &s, const string &setupFilePath)
|
2016-06-15 18:43:10 +12:00
|
|
|
: m_setupFile(setupFilePath) {
|
|
|
|
setCommandLine(s);
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void CasmTask2::setDefaultValue() {
|
|
|
|
m_taskChunksize = 1;
|
|
|
|
m_start = 0;
|
|
|
|
m_end = 9999;
|
|
|
|
m_step = 1;
|
|
|
|
m_filePath = "";
|
|
|
|
m_name = "";
|
|
|
|
m_outname = "";
|
|
|
|
m_firstFrame = 0;
|
|
|
|
m_lastFrame = 0;
|
|
|
|
m_reduction = 1;
|
|
|
|
m_moveType = M_BG_FRACMOVE;
|
|
|
|
m_prec = 32;
|
|
|
|
m_renderTile = 1.;
|
|
|
|
m_memChunk = 4.;
|
|
|
|
m_multimedia = false;
|
|
|
|
m_logfile = false;
|
|
|
|
m_cf = false;
|
|
|
|
m_restype = RES_TYPE_STANDARD;
|
|
|
|
m_noOverwrite = false;
|
|
|
|
m_clap = false;
|
|
|
|
m_mprocess = false;
|
|
|
|
m_numColumn = -1;
|
|
|
|
m_lineart = -1;
|
|
|
|
m_edgeAliasing = -1;
|
|
|
|
m_gamma = -1.;
|
|
|
|
m_bcScript = "";
|
|
|
|
m_acScript = "";
|
|
|
|
m_outputScript = "";
|
|
|
|
m_outputScriptArgument = "";
|
|
|
|
m_setupFile = "";
|
|
|
|
xsize = 0;
|
|
|
|
ysize = 0;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void CasmTask2::setFileArg(const string &fp) {
|
|
|
|
TFilePath filePath = TFilePath(fp);
|
|
|
|
CasmFileInfo casmFileInfo(filePath);
|
|
|
|
int start, end;
|
|
|
|
bool interlaced;
|
|
|
|
casmFileInfo.getFrameRange(start, end, interlaced);
|
|
|
|
|
|
|
|
m_filePath = fp;
|
|
|
|
m_start = start;
|
|
|
|
m_end = end;
|
|
|
|
m_step = 1;
|
|
|
|
|
|
|
|
setName(TFilePath(fp).getName());
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
string CasmTask2::getCommandLine() const {
|
|
|
|
string qualifiers, prgname, dirname, biname;
|
|
|
|
|
|
|
|
if (m_reduction != 1) qualifiers += " -shrink " + toString(m_reduction) + " ";
|
|
|
|
|
|
|
|
if (m_moveType != moveType::M_BG_FRACMOVE)
|
|
|
|
qualifiers +=
|
|
|
|
(m_moveType == moveType::M_FRACMOVE) ? " -fracmove " : " -intmove ";
|
|
|
|
if (m_prec == 64)
|
|
|
|
qualifiers += " -64bit";
|
|
|
|
else
|
|
|
|
qualifiers += " -32bit";
|
|
|
|
|
|
|
|
qualifiers += " -tile " + toString(m_renderTile) + " ";
|
|
|
|
|
|
|
|
qualifiers += " -mem " + toString(m_memChunk) + " ";
|
|
|
|
|
|
|
|
if (m_multimedia) {
|
|
|
|
if (m_numColumn < 0)
|
|
|
|
qualifiers += " -mm ";
|
|
|
|
else
|
|
|
|
qualifiers += " -mmsingle " + toString(m_numColumn) + " ";
|
|
|
|
}
|
|
|
|
|
|
|
|
if (m_logfile) qualifiers += " -logfile +output/casm_batches.log ";
|
|
|
|
|
|
|
|
if (m_lineart > -1) qualifiers += " -lineart " + toString(m_lineart) + " ";
|
|
|
|
if (m_edgeAliasing > -1)
|
|
|
|
qualifiers += " -edgealiasing " + toString(m_edgeAliasing) + " ";
|
|
|
|
if (m_gamma > -1.0) qualifiers += " -gamma " + toString(m_gamma) + " ";
|
|
|
|
|
|
|
|
switch (m_restype) {
|
|
|
|
CASE RES_TYPE_STANDARD : qualifiers += " -sq ";
|
|
|
|
CASE RES_TYPE_IMPROVED : qualifiers += " -iq ";
|
|
|
|
CASE RES_TYPE_HIGH : qualifiers += " -hq ";
|
|
|
|
}
|
|
|
|
|
|
|
|
if (m_cf) qualifiers += " -cf ";
|
|
|
|
|
|
|
|
if (m_noOverwrite) qualifiers += " -no_overwrite ";
|
|
|
|
|
|
|
|
if (m_clap) qualifiers += " -clap ";
|
|
|
|
|
|
|
|
if (m_bcScript != "") qualifiers += " -bc " + m_bcScript + " ";
|
|
|
|
|
|
|
|
if (m_acScript != "" && m_outputScript == "")
|
|
|
|
qualifiers += " -ac " + m_acScript + " ";
|
|
|
|
|
|
|
|
if (m_outputScript != "") {
|
|
|
|
bool outputToDdr = (m_outputScript == DDR_OUTPUTSCRIPT_FILENAME);
|
|
|
|
|
|
|
|
if (!outputToDdr) qualifiers += " -ac " + m_outputScript + " ";
|
|
|
|
if (m_outputScriptArgument != "") {
|
|
|
|
string entry_point = m_outputScriptArgument;
|
|
|
|
string parity = "odd";
|
|
|
|
int i;
|
|
|
|
i = entry_point.size();
|
|
|
|
if (i > 0 && entry_point[i - 1] == '+') {
|
|
|
|
parity = "even";
|
|
|
|
entry_point[i - 1] = '\0';
|
|
|
|
}
|
|
|
|
// convert_timecode_to_frame (entry_point);//??????
|
|
|
|
if (outputToDdr)
|
|
|
|
qualifiers += " -ddr " + entry_point + " ";
|
|
|
|
else {
|
|
|
|
string app;
|
2016-03-19 06:57:51 +13:00
|
|
|
#ifdef WIN32
|
2016-06-15 18:43:10 +12:00
|
|
|
app = " -ac_args \"$filename $count " + entry_point;
|
|
|
|
app += " " + parity;
|
|
|
|
app += " $total\" ";
|
|
|
|
qualifiers += app;
|
2016-03-19 06:57:51 +13:00
|
|
|
#else
|
2016-06-15 18:43:10 +12:00
|
|
|
app = " -ac_args '$filename $count " + entry_point;
|
|
|
|
app += " " + parity;
|
|
|
|
app += " $total' ";
|
|
|
|
qualifiers += " app;
|
2016-03-19 06:57:51 +13:00
|
|
|
#endif
|
2016-06-15 18:43:10 +12:00
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if (outputToDdr)
|
|
|
|
qualifiers += " -ddr " + toString(0) + " ";
|
|
|
|
else
|
2016-03-19 06:57:51 +13:00
|
|
|
#ifdef WIN32
|
2016-06-15 18:43:10 +12:00
|
|
|
qualifiers += " -ac_args \"$filename $count $total\" ";
|
2016-03-19 06:57:51 +13:00
|
|
|
#else
|
2016-06-15 18:43:10 +12:00
|
|
|
qualifiers += " -ac_args '$filename $count $total' ";
|
2016-03-19 06:57:51 +13:00
|
|
|
#endif
|
2016-06-15 18:43:10 +12:00
|
|
|
}
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
qualifiers += " -step " + toString(m_step);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
if (m_start > m_firstFrame || m_end < m_lastFrame)
|
|
|
|
qualifiers += " -range " + toString(m_start) + " " + toString(m_end) + " ";
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
// qualifiers += " -chunk "+toString(m_taskChunksize)+" ";
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
return qualifiers;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
static bool is_num(string word) {
|
|
|
|
string::iterator it = word.begin();
|
|
|
|
while (it != word.end()) {
|
|
|
|
if ((*it < '0' || *it > '9') && *it != '.') return false;
|
|
|
|
it++;
|
|
|
|
}
|
|
|
|
return true;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
static string cpy_word(string &word, string s) {
|
|
|
|
/* salto gli spazi bianchi iniziali */
|
|
|
|
string::iterator it = s.begin();
|
|
|
|
word = "";
|
|
|
|
string::iterator it2 = word.begin();
|
|
|
|
while (s[0] == ' ' || s[0] == '\t') it++;
|
|
|
|
if (s[0] == '\'' || s[0] == '\"') {
|
|
|
|
/* argomento fra virgolette */
|
|
|
|
char quote = *it++;
|
|
|
|
while (*it && *it != '\n') {
|
|
|
|
if (*it == '\\') {
|
|
|
|
it++;
|
|
|
|
if (*it == '\0' || *it == '\n') break;
|
|
|
|
switch (*it) {
|
|
|
|
CASE '\\' : *it2++ = '\\';
|
|
|
|
DEFAULT:
|
|
|
|
*it2++ = *it;
|
|
|
|
}
|
|
|
|
it++;
|
|
|
|
} else if (*it == quote) {
|
|
|
|
it++;
|
|
|
|
break;
|
|
|
|
} else
|
|
|
|
*it2++ = *it++;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
/* argomento senza virgolette */
|
|
|
|
while (*it && *it != ' ' && *it != '\t' && *it != '\n') *it2++ = *it++;
|
|
|
|
}
|
|
|
|
//*word = '\0';
|
|
|
|
|
|
|
|
/* salto gli spazi bianchi finali */
|
|
|
|
while (*it == ' ' || *it == '\t') it++;
|
|
|
|
return s.erase(s.begin(), it);
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void CasmTask2::setCommandLine(const string &cmdLine) {
|
|
|
|
if (cmdLine.empty()) return;
|
|
|
|
|
|
|
|
setDefaultValue();
|
|
|
|
string s = cmdLine;
|
|
|
|
string::iterator it = s.begin();
|
|
|
|
string word;
|
|
|
|
while (it != s.end()) {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
|
|
|
|
if (word == "-64bit")
|
|
|
|
m_prec = 64;
|
|
|
|
else if (word == "-32bit")
|
|
|
|
m_prec = 32;
|
|
|
|
else if (word == "-sq")
|
|
|
|
m_restype = RES_TYPE_STANDARD;
|
|
|
|
else if (word == "-iq")
|
|
|
|
m_restype = RES_TYPE_IMPROVED;
|
|
|
|
else if (word == "-hq")
|
|
|
|
m_restype = RES_TYPE_HIGH;
|
|
|
|
else if (word == "-step") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word)) m_step = atoi(word.c_str());
|
|
|
|
} else if (word == "-range") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word)) m_start = atoi(word.c_str());
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word)) m_end = atoi(word.c_str());
|
|
|
|
} else if (word == "-shrink") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word)) m_reduction = atoi(word.c_str());
|
|
|
|
} else if (word == "-fracmove") {
|
|
|
|
m_moveType = M_FRACMOVE;
|
|
|
|
} else if (word == "-intmove") {
|
|
|
|
m_moveType = M_INTMOVE;
|
|
|
|
}
|
|
|
|
/* else
|
|
|
|
if (STR_EQ(word, "-64bit"))
|
|
|
|
task->prec = 64;
|
|
|
|
else
|
|
|
|
if (STR_EQ(word, "-32bit"))
|
|
|
|
task->prec = 32;*/
|
|
|
|
else if (word == "-tile") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word)) m_renderTile = atof(word.c_str());
|
|
|
|
} else if (word == "-mem") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word)) m_taskChunksize = atoi(word.c_str());
|
|
|
|
} else if (word == "-chunk") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word)) m_memChunk = atof(word.c_str());
|
|
|
|
} else if (word == "-mm") {
|
|
|
|
m_multimedia = true;
|
|
|
|
m_numColumn = -1;
|
|
|
|
} else if (word == "-mmsingle") {
|
|
|
|
m_multimedia = true;
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word)) m_numColumn = atoi(word.c_str());
|
|
|
|
} else if (word == "-lineart") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word)) m_lineart = atoi(word.c_str());
|
|
|
|
} else if (word == "-edgealiasing") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word)) m_edgeAliasing = atoi(word.c_str());
|
|
|
|
} else if (word == "-gamma") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word)) m_gamma = atof(word.c_str());
|
|
|
|
} else if (word == "-cf") {
|
|
|
|
m_cf = true;
|
|
|
|
} else if (word == "-no_overwrite") {
|
|
|
|
m_noOverwrite = true;
|
|
|
|
} else if (word == "-clap") {
|
|
|
|
m_clap = true;
|
|
|
|
} else if (word == "-bc") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
m_bcScript = word;
|
|
|
|
} else if (word == "-ac") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
m_outputScript = word;
|
|
|
|
} else if (word == "-ac_args") { /*
|
|
|
|
char output_script_argument[1024];
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if(parse_ac_args(output_script_argument, word))
|
|
|
|
task->output_script_argument = strsave(output_script_argument);*/
|
|
|
|
} else if (word == "-logfile") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
m_logfile = true;
|
|
|
|
}
|
|
|
|
/* else
|
|
|
|
if (!word.compare("-range"))
|
2016-03-19 06:57:51 +13:00
|
|
|
{
|
2016-06-15 18:43:10 +12:00
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word))
|
|
|
|
task->start = atoi(word);
|
|
|
|
else
|
|
|
|
{
|
|
|
|
delete_job((TASK *)task);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
if (is_num(word))
|
|
|
|
task->end = atoi(word);
|
|
|
|
else
|
|
|
|
{
|
|
|
|
delete_job((TASK *)task);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}*/
|
|
|
|
/* else
|
|
|
|
if (*word!='\n' && *word!='\0')
|
|
|
|
{
|
|
|
|
t = tim_get_type(word);
|
|
|
|
if (*t == '.') t++;
|
|
|
|
if (FILESTR_NE(t, "casm"))
|
|
|
|
{
|
|
|
|
delete_job((TASK *)task);
|
2016-03-19 06:57:51 +13:00
|
|
|
// return NULL;
|
2016-06-15 18:43:10 +12:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
TCALLOC(task->casm_file, strlen(word)+1);
|
|
|
|
strcpy(task->casm_file, word);
|
|
|
|
compute_casm_range(task->casm_file, &(task->first_frame), &(task->last_frame),
|
|
|
|
&dummy);
|
|
|
|
if (task->start<task->first_frame)
|
|
|
|
task->start=task->first_frame;
|
|
|
|
if (task->end>task->last_frame)
|
|
|
|
task->end=task->last_frame;
|
|
|
|
task->xsize = task->ysize = 0;
|
|
|
|
casm_camera_size(task->casm_file, &task->xsize, &task->ysize);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}*/
|
|
|
|
it = s.begin();
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void CasmTask2::checkNameUnc() {
|
|
|
|
SubmitPageTask::checkNameUnc();
|
|
|
|
if (m_setupFile == "") return;
|
|
|
|
|
|
|
|
TFilePath fp(m_setupFile);
|
|
|
|
string uncString = "";
|
|
|
|
try {
|
|
|
|
uncString = convertToUncString(fp);
|
|
|
|
} catch (TException &) {
|
|
|
|
if (!TFileStatus(fp).doesExist()) {
|
|
|
|
string msg = toString(fp.getWideString()) + "\n";
|
|
|
|
msg += "File not found\n";
|
|
|
|
msg += "Please verify that the path is correct";
|
|
|
|
throw TException(msg);
|
|
|
|
}
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//==============================================================================
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
ScriptTask::ScriptTask() { setDefaultValue(); }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
ScriptTask::ScriptTask(const string &s, const string &setupFilePath)
|
2016-06-15 18:43:10 +12:00
|
|
|
: m_setupFile(setupFilePath) {
|
|
|
|
setCommandLine(s);
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void ScriptTask::setFileArg(const string &fp) {
|
|
|
|
m_filePath = fp;
|
|
|
|
m_name = TFilePath(fp).getName();
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
string ScriptTask::getCommandLine() const {
|
|
|
|
string cmdLine;
|
|
|
|
if (m_filePath == "") {
|
|
|
|
assert(false);
|
|
|
|
return "";
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
#ifdef WIN32
|
2016-06-15 18:43:10 +12:00
|
|
|
/*
|
|
|
|
if (is_fg)
|
|
|
|
cmdLine = m_filePath;
|
|
|
|
else
|
|
|
|
*/
|
|
|
|
// viene sempre fatto girare in background
|
|
|
|
cmdLine = "CALL " + m_filePath + " ";
|
2016-03-19 06:57:51 +13:00
|
|
|
#else
|
2016-06-15 18:43:10 +12:00
|
|
|
cmdLine = m_filePath;
|
2016-03-19 06:57:51 +13:00
|
|
|
#endif
|
2016-06-15 18:43:10 +12:00
|
|
|
cmdLine += " ";
|
|
|
|
|
|
|
|
if (m_arg1 != "") cmdLine += m_arg1 + " ";
|
|
|
|
if (m_arg2 != "") cmdLine += m_arg2 + " ";
|
|
|
|
if (m_arg3 != "") cmdLine += m_arg3 + " ";
|
|
|
|
if (m_arg4 != "") cmdLine += m_arg4 + " ";
|
|
|
|
if (m_arg5 != "") cmdLine += m_arg5 + " ";
|
|
|
|
return cmdLine;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void ScriptTask::setCommandLine(const string &cmdLine) {
|
|
|
|
setDefaultValue();
|
|
|
|
string s = cmdLine;
|
|
|
|
string word;
|
|
|
|
if (s == "") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
// if (word == "")
|
|
|
|
m_arg1 = word;
|
|
|
|
// else
|
|
|
|
// m_arg1 = "";
|
|
|
|
}
|
|
|
|
if (s == "") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
// if (word == "")
|
|
|
|
m_arg2 = word;
|
|
|
|
}
|
|
|
|
if (s == "") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
// if (word == "")
|
|
|
|
m_arg3 = word;
|
|
|
|
}
|
|
|
|
if (s == "") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
// if (word == "")
|
|
|
|
m_arg4 = word;
|
|
|
|
}
|
|
|
|
if (s == "") {
|
|
|
|
s = cpy_word(word, s);
|
|
|
|
// if (word == "")
|
|
|
|
m_arg5 = word;
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void ScriptTask::setDefaultValue() {
|
|
|
|
m_name = "";
|
|
|
|
m_filePath = "";
|
|
|
|
m_setupFile = "";
|
|
|
|
m_arg1 = "";
|
|
|
|
m_arg2 = "";
|
|
|
|
m_arg3 = "";
|
|
|
|
m_arg4 = "";
|
|
|
|
m_arg5 = "";
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void ScriptTask::checkNameUnc() {
|
|
|
|
SubmitPageTask::checkNameUnc();
|
|
|
|
if (m_arg1 == "") return;
|
|
|
|
|
|
|
|
TFilePath fp(m_arg1);
|
|
|
|
string uncString = "";
|
|
|
|
try {
|
|
|
|
uncString = convertToUncString(fp);
|
|
|
|
} catch (TException &) {
|
|
|
|
if (!TFileStatus(fp).doesExist()) {
|
|
|
|
string msg = toString(fp.getWideString()) + "\n";
|
|
|
|
msg += "File not found\n";
|
|
|
|
msg += "Please verify that the path is correct";
|
|
|
|
throw TException(msg);
|
|
|
|
}
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|