def main():
    if (len(sys.argv) < 3):
        sys.stderr.write("Error: Not enough arguments!\n")
        sys.stderr.write("Run instructions:\n")
        sys.stderr.write(
            "  updateAnalysisEngines [pathEngines] [pathAnnotators]\n")
        exit()

    pathEngines = sys.argv[1]
    pathsAnnotators = sys.argv[2:]

    try:
        files = []
        print("searching for annotators...")
        for pathAnnotators in pathsAnnotators:
            if os.path.exists(pathAnnotators) and os.path.isdir(
                    pathAnnotators):
                files += getFiles(pathAnnotators)
            else:
                sys.stderr.write(
                    "Error: incorrect annotator path: {}\n".format(
                        pathAnnotators))
                return -1
        print("found %d annotator..." % (len(files)))

        print("searching for analysis engines...")
        if not os.path.exists(pathEngines) or not os.path.isdir(pathEngines):
            sys.stderr.write(
                "Error: incorrect analysis engines path: {}\n".format(
                    pathEngines))
            return -1
        engines = getAnalysisEngines(pathEngines)
        print("found %d analysis engines..." % (len(engines)))

        print("checking for modification...")
        if check_modification.isModified(files + engines):
            print("Files modified. Updating annotators...")
        else:
            print("Files not modified. Nothing to do.")
            return 0

        print("extracting annotator names...")
        annotators = getAnnotators(files)
        print("found %d annotators..." % (len(annotators)))
        print("creating xml for annotators...")
        xmlAnnotators = createAnnotatorsXML(pathEngines, annotators)
        print("updating analysis engines...")
        updated = updateAnalysisEngines(engines, xmlAnnotators)
        print("%d updated, %d already up to date." %
              (updated, len(engines) - updated))
        print("update finished!")
    except Exception as e:
        sys.stderr.write("Error: {}\n".format(e.message))
        return -1
    return 0
def main():
    if len(sys.argv) < 3:
        sys.stderr.write("Error: Not enough arguments!\n")
        sys.stderr.write("Run instructions:\n")
        sys.stderr.write("  updateAnalysisEngines [pathEngines] [pathAnnotators]\n")
        exit()

    pathEngines = sys.argv[1]
    pathsAnnotators = sys.argv[2:]

    try:
        files = []
        print("searching for annotators...")
        for pathAnnotators in pathsAnnotators:
            if os.path.exists(pathAnnotators) and os.path.isdir(pathAnnotators):
                files += getFiles(pathAnnotators)
            else:
                sys.stderr.write("Error: incorrect annotator path: {}\n".format(pathAnnotators))
                return -1
        print("found %d annotator..." % (len(files)))

        print("searching for analysis engines...")
        if not os.path.exists(pathEngines) or not os.path.isdir(pathEngines):
            sys.stderr.write("Error: incorrect analysis engines path: {}\n".format(pathEngines))
            return -1
        engines = getAnalysisEngines(pathEngines)
        print("found %d analysis engines..." % (len(engines)))

        print("checking for modification...")
        if check_modification.isModified(files + engines):
            print("Files modified. Updating annotators...")
        else:
            print("Files not modified. Nothing to do.")
            return 0

        print("extracting annotator names...")
        annotators = getAnnotators(files)
        print("found %d annotators..." % (len(annotators)))
        print("creating xml for annotators...")
        xmlAnnotators = createAnnotatorsXML(pathEngines, annotators)
        print("updating analysis engines...")
        updated = updateAnalysisEngines(engines, xmlAnnotators)
        print("%d updated, %d already up to date." % (updated, len(engines) - updated))
        print("update finished!")
    except Exception as e:
        sys.stderr.write("Error: {}\n".format(e.message))
        return -1
    return 0
Exemple #3
0
def main():
  if len(sys.argv) < 2:
    help()
    return -1

  projects = []
  files = []
  try:
    for i in range(1, len(sys.argv)):
      args = tuple(sys.argv[i].split(':'))
      if(len(args) != 4):
        sys.stderr.write("Error: {0} not in the right format!".format(sys.argv[i]))
        return -1
      (name,namespace,xmlPath,cppPath) = args
      xmlPath = os.path.abspath(xmlPath)
      cppPath = os.path.abspath(cppPath)
      if not os.path.exists(xmlPath) or not os.path.isdir(xmlPath):
        raise Exception("Path does not exist: " + xmlPath)
      if not os.path.exists(cppPath):
        os.mkdir(cppPath)

      includePath = cppPath.rpartition("include/")[2]
      project = Project(name, namespace, xmlPath, cppPath, includePath)
      projects.append(project)
  except Exception as e:
    sys.stderr.write("Error: " + e.message)
    return -1

  print("Searching for files...")
  for project in projects:
    for filename in os.listdir(project.xmlPath):
      filepath = os.path.join(project.xmlPath, filename)
      if not os.path.isfile(filepath):
        #print("Ignoring file: " + filename)
        continue

      (name, ext) = os.path.splitext(filename)
      if ext != ".xml" or name == ALL_TYPES_NAME:
        #print("Ignoring file: " + filename)
        continue
      project.addXMLFile(filename)
      files.append(filepath)

  print("Checking for modification...")
  if check_modification.isModified(files):
    print("Files modified. Updating type system...")
  else:
    print("Files not modified. Nothing to do.")
    return 0

  print("Reading typesystem...")
  reader = TypeSystemReader()
  try:
    reader.read(projects)
  except Exception as e:
    sys.stderr.write("Error: " + e.message)
    return -1

  ts = reader.getTypeSystem()
  print("checking type system...")
  if not ts.check():
    sys.stderr.write("failed!")
    return -1

  print("Writing typesystem...")
  writer = TypeSystemWriter(ts, projects[0])
  try:
    writer.write()
    writer.writeAllTypesXML()
    writer.updateImports()
  except Exception as e:
    sys.stderr.write("Error: " + e.message)
    return -1

  check_modification.isModified(files)
  return 0
def main():
    if len(sys.argv) < 2:
        help()
        return -1

    projects = []
    files = []
    try:
        for i in range(1, len(sys.argv)):
            args = tuple(sys.argv[i].split(":"))
            if len(args) != 4:
                sys.stderr.write("Error: {0} not in the right format!".format(sys.argv[i]))
                return -1
            (name, namespace, xmlPath, cppPath) = args
            xmlPath = os.path.abspath(xmlPath)
            cppPath = os.path.abspath(cppPath)
            if not os.path.exists(xmlPath) or not os.path.isdir(xmlPath):
                raise Exception("Path does not exist: " + xmlPath)
            if not os.path.exists(cppPath):
                os.mkdir(cppPath)

            includePath = cppPath.rpartition("include/")[2]
            project = Project(name, namespace, xmlPath, cppPath, includePath)
            projects.append(project)
    except Exception as e:
        sys.stderr.write("Error: " + e.message)
        return -1

    print("Searching for files...")
    for project in projects:
        for filename in os.listdir(project.xmlPath):
            filepath = os.path.join(project.xmlPath, filename)
            if not os.path.isfile(filepath):
                # print("Ignoring file: " + filename)
                continue

            (name, ext) = os.path.splitext(filename)
            if ext != ".xml" or name == ALL_TYPES_NAME:
                # print("Ignoring file: " + filename)
                continue
            project.addXMLFile(filename)
            files.append(filepath)

    print("Checking for modification...")
    if check_modification.isModified(files):
        print("Files modified. Updating type system...")
    else:
        print("Files not modified. Nothing to do.")
        return 0

    print("Reading typesystem...")
    reader = TypeSystemReader()
    try:
        reader.read(projects)
    except Exception as e:
        sys.stderr.write("Error: " + e.message)
        return -1

    ts = reader.getTypeSystem()
    print("checking type system...")
    if not ts.check():
        sys.stderr.write("failed!")
        return -1

    print("Writing typesystem...")
    writer = TypeSystemWriter(ts, projects[0])
    try:
        writer.write()
        writer.writeAllTypesXML()
        writer.updateImports()
    except Exception as e:
        sys.stderr.write("Error: " + e.message)
        return -1

    check_modification.isModified(files)
    return 0