Exemplo n.º 1
0
def generate(project):
    _entries = [
        (".project", "eclipse.project.template"),
        (".cproject", "eclipse.cproject.template"),
    ]

    for entry in _entries:
        outfilepath = os.path.join(project.outdirpath, entry[0])
        infilepath = os.path.join(os.path.dirname(__file__), entry[1])
        logging.info("%s: generating '%s'", project.name, outfilepath)
        template.expand(infilepath, outfilepath, _TemplateHandler(project))
Exemplo n.º 2
0
def generate(project):
    _entries = [
        (project.name + ".files", _gen_project_files),
        (project.name + ".includes", _gen_project_includes),
        (project.name + ".config", _gen_project_config),
        (project.name + ".creator", _gen_project_creator),
        (project.name + ".creator.shared",
         "qtcreator.creator.shared.template"),
    ]

    for entry in _entries:
        outfilepath = os.path.join(project.outdirpath, entry[0])
        logging.info("%s: generating '%s'", project.name, outfilepath)
        if callable(entry[1]):
            with open(outfilepath, "w") as fd:
                entry[1](project, fd)
        else:
            infilepath = os.path.join(os.path.dirname(__file__), entry[1])
            template.expand(infilepath, outfilepath, _TemplateHandler(project))
Exemplo n.º 3
0
    def __init__(self, dxrconfig, treeconfig, filepath, newroot):
        # Read and expand all templates
        self.html_header = template.expand(template.readFile(dxrconfig["html_header"]),
                                           dxrconfig["virtroot"], treeconfig["tree"])
        self.html_footer = template.expand(template.readFile(dxrconfig["html_footer"]),
                                           dxrconfig["virtroot"], treeconfig["tree"])
        self.html_sidebar_header = template.expand(template.readFile(dxrconfig["html_sidebar_header"]),
                                                   dxrconfig["virtroot"], treeconfig["tree"])
        self.html_sidebar_footer = template.expand(template.readFile(dxrconfig["html_sidebar_footer"]),
                                                   dxrconfig["virtroot"], treeconfig["tree"])
        self.html_main_header = template.expand(template.readFile(dxrconfig["html_main_header"]),
                                                dxrconfig["virtroot"], treeconfig["tree"])
        self.html_main_footer = template.expand(template.readFile(dxrconfig["html_main_footer"]),
                                                dxrconfig["virtroot"], treeconfig["tree"])
        
        self.source = template.readFile(filepath)
        self.virtroot = dxrconfig["virtroot"]
        self.treename = treeconfig["tree"]
        self.filename = os.path.basename(filepath)
        self.srcroot = treeconfig["sourcedir"]
        self.newroot = os.path.normpath(newroot)
        self.srcpath = filepath.replace(self.srcroot + '/', '')

        self._init_db(dxrconfig["database"])
        self.tokenizer = self._createTokenizer()

        # Config info used by dxr.js
        self.globalScript = ['var virtroot = "%s", tree = "%s";' % (self.virtroot, self.treename)]
Exemplo n.º 4
0
 def _expand_params(self, parent, key, value, global_env):
   # 文字列の場合はテンプレートとして扱い、
   # 辞書、リストの場合はさらにその中の要素を展開する。
   # ここで指定していない数値等の型はそのまま
   if isinstance(value, basestring):
     new_value = template.expand(value, global_env)
     if isinstance(key, basestring) and key.startswith('+'):
       original_key = key.lstrip('+')
       parent[original_key] = ast.literal_eval(new_value)
       del parent[key]
     else:
       parent[key] = new_value
   elif isinstance(value, dict):
     for k, v in value.items():
       self._expand_params(value, k, v, global_env)
   elif isinstance(value, list):
     for k, v in enumerate(value):
       self._expand_params(value, k, v, global_env)
Exemplo n.º 5
0
 def _expand_params(self, parent, key, value, global_env):
   # 文字列の場合はテンプレートとして扱い、
   # 辞書、リストの場合はさらにその中の要素を展開する。
   # ここで指定していない数値等の型はそのまま
   if isinstance(value, util.basestring):
     # key に + が付いている場合は変数をそのまま代入する
     if isinstance(key, util.basestring) and key.startswith('+'):
       original_key = key.lstrip('+')
       result = template.expand_param({original_key: value}, global_env)
       parent[original_key] = result[original_key]
       del parent[key]
     else:
       parent[key] = template.expand(value, global_env)
   elif isinstance(value, dict):
     # see: scenarioloader.py
     # 辞書オブジェクトに勝手に __line__ が入ることによって挙動が変わることがあるので
     # 削除しておく
     if '__line__' in value:
       del value['__line__']
     for k, v in value.items():
       self._expand_params(value, k, v, global_env)
   elif isinstance(value, list):
     for k, v in enumerate(value):
       self._expand_params(value, k, v, global_env)