Exemplo n.º 1
0
//--------------------------------------
StreamingServicePlugin loadPlugin(const QString &directory) {
  QString metadataPath = findFileByExtension(directory, "ini");
  QString scriptPath = findFileByExtension(directory, "js");
  QString descPath = findFileByExtension(directory, "html");
  QString locale = QLocale::system().name().split("_")[0];
  QString translationPath = findTranslation(descPath, locale);
  if (!translationPath.isEmpty())
    descPath = translationPath;
  StreamingServicePlugin retVal;
  retVal.Code = readFileContent(scriptPath);
  retVal.Description = readFileContent(descPath);
  readMetadata(metadataPath, retVal);
  retVal.scriptPath = scriptPath;

  return retVal;
}
Exemplo n.º 2
0
void PythonEngine::init()
{
    m_isRunning = false;
    m_stdOut = "";

    // connect stdout
    connect(this, SIGNAL(pythonShowMessage(QString)), this, SLOT(stdOut(QString)));

    // init python
    Py_Initialize();

    // read functions
    m_functions = readFileContent(datadir() + "/functions.py");

    m_dict = PyDict_New();
    PyDict_SetItemString(m_dict, "__builtins__", PyEval_GetBuiltins());

    // init engine extensions
    Py_InitModule("pythonlab", pythonEngineFuntions);

    addCustomExtensions();

    // custom modules
    PyRun_String(QString("import sys; sys.path.insert(0, \"" + datadir() + "/resources/python" + "\")").toStdString().c_str(), Py_file_input, m_dict, m_dict);

    // functions.py
    PyRun_String(m_functions.toStdString().c_str(), Py_file_input, m_dict, m_dict);
}
int main(int argc, char *argv[]) {
  unsigned char *sourceFile;
  unsigned char *dstFile;
  unsigned char key[AES_BLOCK_SIZE];
  unsigned int i;

  // check command args
  if (argc != 3 && argc != 5) {
    printf("decrypt_dir src_file dst_file -k key\n");
    return -1;
  }

  sourceFile = argv[1];
  dstFile = argv[2];

  for (i = 0; i < AES_BLOCK_SIZE; i++) {
    key[i] = 32 + i;
  }

  if (argc == 5) {
    if (strlen(argv[4]) >= 16) {
      argv[4][15] = '\0';
    }
    sprintf(key, "%s", argv[4]);
  }

  unsigned char *content = readFileContent(sourceFile);
  unsigned char *decryptContent = aes_decrypt_cbc_str(key, content);
  writeContentToFile(decryptContent, dstFile);

  free(content);
  free(decryptContent);

  return 0;
}
Exemplo n.º 4
0
void ReportDialog::generateIndex()
{
    logMessage("ReportDialog::generateIndex()");

    QString fileNameTemplate = tempProblemDir() + "/report/template.html";
    QString fileNameIndex = tempProblemDir() + "/report/report.html";

    QString content;

    // load template.html
    content = readFileContent(fileNameTemplate);
    QFile::remove(fileNameTemplate);

    // save index.html
    QFile fileIndex(fileNameIndex);
    if (fileIndex.open(QIODevice::WriteOnly | QIODevice::Text))
    {
        QTextStream stream(&fileIndex);
        stream.setCodec("UTF-8");

        stream << replaceTemplates(content);

        fileIndex.flush();
        fileIndex.close();
    }
}
//================================================================================
void test_get_var_name(const string& absFilePath)
//================================================================================
{
    //==== parse file content
    output << "parsing file: " << absFilePath << endl;
    
//    FunctionBlock* pou = 0;
    FunctionBlock* fb = 0;

    //=== read file content
    string buf;
    readFileContent(absFilePath, buf);

    string err = parse_string(buf, &fb);

    if ( err.empty() )
    {
        string name;
        StringPosRange range;
        const var_decl_sections_type vds = fb->getVarDeclSections();

        for(var_decl_sections_citer ci_vds = vds.begin();
            ci_vds != vds.end();
            ++ci_vds)
        {
            const var_declarations_type vd = (*ci_vds)->getVarDeclList();
            
            for(var_declarations_citer ci_vd = vd.begin();
                ci_vd != vd.end();
                ++ci_vd)
            {
                const vars_type v = (*ci_vd)->getVariables();

                for(vars_citer ci_v = v.begin();
                    ci_v != v.end();
                    ++ci_v)
                {
                    name = (*ci_v)->getName();
                    range = (*ci_v)->getNameRange();
                    break;
                }
                break;
            }
           break;
         }

       output << buf << endl;
       output << name << endl;
       output << range.getFirst() << endl;
       output << range.getLast() << endl;
       output << range.getLength() << endl;
    }
    else
    {
       output << err << endl;
    }

    delete fb;
}
Exemplo n.º 6
0
std::unique_ptr<File> Extractor::readFile() {
	auto fileName = readFileName();
	readFileTimestamp();
	readFileOwnerId();
	readFileGroupId();
	readFileMode();
	auto fileSize = readFileSize();
	readUntilEndOfFileHeader();
	auto fileContent = readFileContent(fileSize);

	return std::make_unique<StringFile>(fileContent, fileName);
}
Exemplo n.º 7
0
void AgrosSolver::runScript()
{
    if (!QFile::exists(m_fileName))
    {
        Agros2D::log()->printMessage(tr("Scripting Engine"), tr("Python script '%1' not found").arg(m_fileName));
        QApplication::exit(-1);
    }

    m_command = readFileContent(m_fileName);

    runCommand();
}
Exemplo n.º 8
0
/**
  * When file finished, execute JavaScript functions
  */
void Qasmine::finishLoading(bool isFinished) 
{
    if (!isFinished) {
        this->log("ERROR: cannot load file : '" + fileName + "'");
        exitConditionally(255);
    }

    QWebFrame *frame  = webView->page()->mainFrame();

    frame->evaluateJavaScript(readFileContent(":/qasmine.js"));
    frame->addToJavaScriptWindowObject(QString("qasmine"), this);
    frame->evaluateJavaScript(getQasmineJsCommand());
}
//================================================================================
void test_task_configuration(const string& absFilePath)
//================================================================================
{
    //==== parse file content
    output << "parsing file: " << absFilePath << endl;
    
    Resource* res = 0;

    //=== read file content
    string buf;
    readFileContent(absFilePath, buf);

    string err = parse_string(buf, &res);

    // modify import directive
    task_configurations_type task_configurations = res->getTaskConfigurations();

    task_configurations_citer ci_taskconf;
    for(ci_taskconf = task_configurations.begin();
        ci_taskconf != task_configurations.end();
        ++ci_taskconf)
    {
    }
    --ci_taskconf;
    --ci_taskconf;


    string name = (*ci_taskconf)->getName();
    StringPosRange nameRange = (*ci_taskconf)->getNameRange();

    string fftask = (*ci_taskconf)->getFftask();
    StringPosRange fftaskRange = (*ci_taskconf)->getFftaskRange();

    string interval = (*ci_taskconf)->getInterval();
    StringPosRange intervalRange = (*ci_taskconf)->getIntervalRange();

    string iosync = (*ci_taskconf)->getIosync();
    StringPosRange iosyncRange = (*ci_taskconf)->getIosyncRange();

    string priority = (*ci_taskconf)->getPriority();
    StringPosRange priorityRange = (*ci_taskconf)->getPriorityRange();

    string autostart = (*ci_taskconf)->getAutostart();
    StringPosRange autostartRange = (*ci_taskconf)->getAutostartRange();

    StringPosRange initlistrange = (*ci_taskconf)->getInitialisationListRange();

    output << buf << endl;

    delete res;
}
Exemplo n.º 10
0
//================================================================================
void test_configuration_positions(const string& absFilePath)
//================================================================================
{
    //==== parse file content
    output << "parsing file: " << absFilePath << endl;
    
    Configuration* con = 0;

    //=== read file content
    string buf;
    readFileContent(absFilePath, buf);

    string err = parse_string(buf, &con);

    // modify import directive
    import_directives_type import_directives = con->getImportDirectives();

    import_directives_citer ci_impdir;
    for(ci_impdir = import_directives.begin();
        ci_impdir != import_directives.end();
        ++ci_impdir)
    {
    }
    --ci_impdir;
    --ci_impdir;

    StringPosRange range = (*ci_impdir)->getImportDirectiveRange();
    buf.erase(range.getFirst() - 1, range.getLast() - range.getFirst() + 2);
    string NewImportDirective = "#IMPORT \"ModifiedResource.res\"";
    buf.insert(range.getFirst() -1, NewImportDirective);

    // add import directive
    delete con;
    err = parse_string(buf, &con);
    NewImportDirective = "\n    #IMPORT \"AddedResource1.res\"";
    buf.insert(con->getNextImpDirInsertPos(), NewImportDirective);

    // add import directive
    delete con;
    err = parse_string(buf, &con);
    NewImportDirective = "\n    #IMPORT \"AddedResource2.res\"";
    buf.insert(con->getNextImpDirInsertPos(), NewImportDirective);

    output << buf << endl;

    delete con;
}
Exemplo n.º 11
0
// Loads an xml document from a file. Returns 0 on error
TiXmlDocument *XmlHelper::loadFromFile(const std::string &fname)
{
	std::string content;
	if(!readFileContent(fname, content)){
		return 0;
	}

	TiXmlDocument *doc = new TiXmlDocument();
	doc->Parse(content.c_str());
	if(doc->Error()){
		debug("Error parsing the file %s\n", fname.c_str());
		delete doc;
		return 0;
	}

	// everything ok
	return doc;
}
Exemplo n.º 12
0
void Extractor::readLookupTable() {
	// In the GNU format, the special file name '/' denotes a lookup table.
	// However, we need to ensure that it is just a standalone '/' because "//"
	// denotes the start of a filename table.
	if (hasLookupTableAt(i)) {
		// The lookup table has the same format as a file. However, as we do
		// not need it, throw it away after reading (i.e. do not store its
		// content).
		++i;
		readFileTimestamp();
		readFileOwnerId();
		readFileGroupId();
		readFileMode();
		auto fileSize = readFileSize();
		readUntilEndOfFileHeader();
		readFileContent(fileSize);
	}
}
Exemplo n.º 13
0
void PythonEngine::init()
{
    m_isScriptRunning = false;
    m_isExpressionRunning = false;

    // init python
    PyEval_InitThreads();
    Py_Initialize();

    // args
    /// \todo Better
    int argc = 1;
    char ** argv = new char*[1];
    argv[0] = new char[1]();
    PySys_SetArgv(argc, argv);
    delete [] argv[0];
    delete [] argv;

    // read pythonlab functions
    addFunctions(readFileContent(datadir() + "/resources/python/functions_pythonlab.py"));
    addCustomFunctions();

    // m_dict = PyDict_New();
    // PyDict_SetItemString(m_dict, "__builtins__", PyEval_GetBuiltins());

    PyObject *main = PyImport_ImportModule("__main__");
    Py_INCREF(main);
    m_dict = PyModule_GetDict(main);
    Py_INCREF(m_dict);

    // init engine extensions
    Py_InitModule("pythonlab", pythonEngineFuntions);

    addCustomExtensions();

    // custom modules
    PyObject *import = PyRun_String(QString("import sys; sys.path.insert(0, \"" + datadir() + "/resources/python" + "\")").toLatin1().data(), Py_file_input, m_dict, m_dict);
    Py_XDECREF(import);

    // functions.py
    PyObject *func = PyRun_String(m_functions.toLatin1().data(), Py_file_input, m_dict, m_dict);
    Py_XDECREF(func);
}
Exemplo n.º 14
0
void AgrosSolver::runScript()
{
    // log stdout
    if (m_enableLog)
         m_log = new LogStdOut();

    if (!QFile::exists(m_fileName))
    {
        Agros2D::log()->printMessage(tr("Scripting Engine"), tr("Python script '%1' not found").arg(m_fileName));
        QApplication::exit(-1);
    }

    QTime time;
    time.start();

    // silent mode
    setSilentMode(true);

    connect(currentPythonEngineAgros(), SIGNAL(pythonShowMessage(QString)), this, SLOT(stdOut(QString)));
    connect(currentPythonEngineAgros(), SIGNAL(pythonShowHtml(QString)), this, SLOT(stdHtml(QString)));

    bool successfulRun= currentPythonEngineAgros()->runScript(readFileContent(m_fileName), m_fileName);

    if (successfulRun)
    {
        Agros2D::log()->printMessage(tr("Solver"), tr("Problem was solved in %1").arg(milisecondsToTime(time.elapsed()).toString("mm:ss.zzz")));

        Agros2D::scene()->clear();
        Agros2D::clear();
        QApplication::exit(0);
    }
    else
    {
        ErrorResult result = currentPythonEngineAgros()->parseError();
        Agros2D::log()->printMessage(tr("Scripting Engine"), tr("%1\nLine: %2\nStacktrace:\n%3\n").
                                  arg(result.error()).
                                  arg(result.line()).
                                  arg(result.traceback()));

        QApplication::exit(-1);
    }
}
Exemplo n.º 15
0
//================================================================================
void readListOfFileNames(const string& fileNameListFile,
                         ListOfFileNames& fileNameList)
//================================================================================
{
    string buf;
    readFileContent(fileNameListFile, buf);

    StringPos lineStart = buf.find_first_not_of(" \t\r\n");
    StringPos lineEnd   = buf.find_first_of("\r\n");
    while( lineStart < buf.size() && lineEnd < buf.size() )
    {
        if ( buf.at(lineStart) != '#' )
            fileNameList.push_back(buf.substr(lineStart, lineEnd - lineStart));

        lineStart = buf.find_first_not_of(" \t\r\n", lineEnd);
        lineEnd   = buf.find_first_of("\r\n", lineStart);
    }

    return;
}
Exemplo n.º 16
0
//================================================================================
void test_struct_positions(const string& absFilePath)
//================================================================================
{
    //==== parse file content
    output << "parsing file: " << absFilePath << endl;
    
    StStruct* st = 0;

    //=== read file content
    string buf;
    readFileContent(absFilePath, buf);

    string err = parse_string(buf, &st);

    if ( err.empty() )
    {
        StringPos insertPos;
        bool sectionExists;
        st->getVarInsertPos("STRUCT", "", insertPos, sectionExists);

        string varDecl = "    NewVar : DINT;\n";
        string varDeclSect = "\nVAR_INPUT\n" + varDecl + "END_VAR";

        if ( sectionExists )
        {
            buf.insert(insertPos, varDecl);
        }
        else
        {
            buf.insert(insertPos, varDeclSect);
        }

        output << buf << endl;
    }
    else
    {
       output << err << endl;
    }

    delete st;
}
Exemplo n.º 17
0
//================================================================================
void test_globvarconstantlist_positions(const string& absFilePath)
//================================================================================
{
    //==== parse file content
    output << "parsing file: " << absFilePath << endl;
    
    GlobVarConstList* gvcl = 0;

    //=== read file content
    string buf;
    readFileContent(absFilePath, buf);

    string err = parse_string(buf, &gvcl);

    if ( err.empty() )
    {
        StringPos insertPos;
        bool sectionExists;
        gvcl->getVarInsertPos("CONST", "", insertPos, sectionExists);

        string varDecl = "    NewVar : DINT;\n";
        string varDeclSect = "\nCONST\n" + varDecl + "END_CONST";

        if ( sectionExists )
        {
            buf.insert(insertPos, varDecl);
        }
        else
        {
            buf.insert(insertPos, varDeclSect);
        }

        output << buf << endl;
    }
    else
    {
       output << err << endl;
    }

    delete gvcl;
}
Exemplo n.º 18
0
std::string genFileMD5(std::string filename)
{
    MD5Data md5;
    std::string file;
    size_t lastReadSize = 0;
    size_t limitSize = 1024 * 1024;
    do 
    {
        file = readFileContent(filename, true, limitSize, lastReadSize);
        if (file.empty())
        {
            break;
        }
        lastReadSize += file.length();
        md5 << file;
        if (file.size() < limitSize)
        {
            break;
        }
    } while (true);
    return md5.genMD5();
}
Exemplo n.º 19
0
std::string getProcessName()
{
    std::string name = "unknown";
    char buf[260] = { 0 };
#ifdef WIN32
    if (GetModuleFileNameA(NULL, buf, 259) > 0)
    {
        name = buf;
    }
    std::string::size_type pos = name.rfind("\\");
    if (pos != std::string::npos)
    {
        name = name.substr(pos + 1, std::string::npos);
    }
    pos = name.rfind(".");
    if (pos != std::string::npos)
    {
        name = name.substr(0, pos - 0);
    }

#elif defined(__APPLE__)

    proc_name(getpid(), buf, 260);
    name = buf;
    return name;;
#else
    sprintf(buf, "/proc/%d/cmdline", (int)getpid());
    name = readFileContent(buf, true, 500, 0);
    std::string::size_type pos = name.rfind("/");
    if (pos != std::string::npos)
    {
        name = name.substr(pos + 1, std::string::npos);
    }
#endif


    return name;
}
Exemplo n.º 20
0
void PythonEngineAgros::addCustomFunctions()
{
    addFunctions(readFileContent(datadir() + "/resources/python/functions_agros2d.py"));
}
Exemplo n.º 21
0
//================================================================================
void test_resource_positions(const string& absFilePath)
//================================================================================
{
    //==== parse file content
    output << "parsing file: " << absFilePath << endl;
    
    Resource* res = 0;

    //=== read file content
    string buf;
    readFileContent(absFilePath, buf);

    string err = parse_string(buf, &res);

    program_configurations_type program_configurations = res->getProgramConfigurations();
    program_configurations_citer ci_progconf;
    for(ci_progconf = program_configurations.begin();
        ci_progconf != program_configurations.end();
        ++ci_progconf)
    {
        string ProgClass = (*ci_progconf)->getProgramClass();
        StringPosRange ProgClassRange = (*ci_progconf)->getProgramClassRange();
        StringPosRange NameRange = (*ci_progconf)->getNameRange();
        StringPosRange Range = (*ci_progconf)->getRange();
    }

    task_configurations_type task_configurations = res->getTaskConfigurations();
    task_configurations_citer ci_taskconf;
    for(ci_taskconf = task_configurations.begin();
        ci_taskconf != task_configurations.end();
        ++ci_taskconf)
    {
        StringPosRange NameRange = (*ci_taskconf)->getNameRange();
        StringPosRange Range = (*ci_taskconf)->getRange();
    }

    // modify import directive
    import_directives_type import_directives = res->getImportDirectives();

    import_directives_citer ci_impdir;
    for(ci_impdir = import_directives.begin();
        ci_impdir != import_directives.end();
        ++ci_impdir)
    {
    }
    --ci_impdir;
    --ci_impdir;

    StringPosRange range = (*ci_impdir)->getImportDirectiveRange();
    buf.erase(range.getFirst() - 1, range.getLast() - range.getFirst() + 2);
    string NewImportDirective = "#IMPORT \"ModifiedGlobVarFile.gvl\"";
    buf.insert(range.getFirst() -1, NewImportDirective);

    // add import directive
    delete res;
    err = parse_string(buf, &res);
    NewImportDirective = "\n    #IMPORT \"AddedGlobVarFile1.gvl\"";
    buf.insert(res->getNextImpDirInsertPos(), NewImportDirective);

    // add import directive
    delete res;
    err = parse_string(buf, &res);
    NewImportDirective = "\n    #IMPORT \"AddedGlobVarFile2.gvl\"";
    buf.insert(res->getNextImpDirInsertPos(), NewImportDirective);

    // add task conf
    delete res;
    err = parse_string(buf, &res);
    string NewTaskConf = "\n    TASK AddedTask1(INTERVAL:=T#100ms, PRIORITY:=5);";
    buf.insert(res->getNextTaskConfInsertPos(), NewTaskConf);

    // add task conf
    delete res;
    err = parse_string(buf, &res);
    NewTaskConf = "\n    TASK AddedTask2(INTERVAL:=T#100ms, PRIORITY:=5);";
    buf.insert(res->getNextTaskConfInsertPos(), NewTaskConf);

    // add prog conf
    delete res;
    err = parse_string(buf, &res);
    string NewProgConf = "\n    PROGRAM AddedProg1 WITH TaskSimulate: Simulate;";
    buf.insert(res->getNextProgConfInsertPos(), NewProgConf);

    // add prog conf
    delete res;
    err = parse_string(buf, &res);
    NewProgConf = "\n    PROGRAM AddedProg2 WITH TaskSimulate: Simulate;";
    buf.insert(res->getNextProgConfInsertPos(), NewProgConf);

    output << buf << endl;

    delete res;
}
Exemplo n.º 22
0
//================================================================================
void test_ops(const string& absFilePath)
//================================================================================
{
    //==== parse file content
    output << "parsing file: " << absFilePath << endl;
    
//    StStruct* pou = 0;
    FunctionBlock* pou = 0;
//    Function* pou = 0;


    string SourceFile;
    BOOL grFile = FALSE;

    CString extension = CString(absFilePath.c_str()).Right(4);

    if (extension.Right(4).CompareNoCase(".4gr") == 0)
    {
        grFile = TRUE;
        ExtractHeader(absFilePath, SourceFile);
    }
    else
    {
        SourceFile = absFilePath;
    }

    //=== read file content
    string buf;
    readFileContent(SourceFile, buf);

    string err = parse_string(buf, &pou);

    StringPos insertPos;
    bool sectionExists;
    pou->getVarInsertPos("VAR_INPUT", "", insertPos, sectionExists);
//    pou->getVarInsertPos("STRUCT", "", insertPos, sectionExists);

    string varDecl = "    NewVar : DINT;\n";
    string varDeclSect = "\nVAR_INPUT\n" + varDecl + "END_VAR";
//    string varDeclSect = "\nSTRUCT\n" + varDecl + "END_VAR";

    if ( sectionExists )
    {
        buf.insert(insertPos, varDecl);
    }
    else
    {
        buf.insert(insertPos, varDeclSect);
    }

    output << buf << endl;

    if (grFile == TRUE)
    {
        string MHFile = "c:\\modifiedHeader.txt";
        ofstream modifiedHeader(MHFile.c_str());
        modifiedHeader << buf << endl;
        modifiedHeader.close();
        MergeHeader(absFilePath, MHFile, TRUE);
    }
    
    delete pou;
}
Exemplo n.º 23
0
/**
  * Before load started, override jasmine
  */
void Qasmine::loadStarted()
{
    QWebFrame *frame  = webView->page()->mainFrame();

    frame->evaluateJavaScript(readFileContent(":/override-jasmine.js"));
}