Example #1
0
 def output_formatter(templ, namespace=None):
     "Output formatting helper"
     full_ns = dict(version=self.version,
                    proxy=config.engine.open(),
                    view=view,
                    query=matcher,
                    matches=matches,
                    summary=summary)
     full_ns.update(namespace or {})
     return formatting.expand_template(templ, full_ns)
Example #2
0
 def output_formatter(templ, ns=None):
     "Output formatting helper"
     full_ns = dict(
         version = self.version,
         proxy = config.engine.open(),
         view = view,
         query = matcher,
         matches = matches,
         summary = summary
     )
     full_ns.update(ns or {})
     return formatting.expand_template(templ, full_ns)
Example #3
0
    def addinfo(self):
        """ Add known facts to templating namespace.
        """
        # Basic values
        self.ns.watch_path = self.job.config.path
        self.ns.relpath = None
        for watch in self.job.config.path:
            if self.ns.pathname.startswith(watch.rstrip('/') + '/'):
                self.ns.relpath = os.path.dirname(
                    self.ns.pathname)[len(watch.rstrip('/')) + 1:]
                break

        # Build indicator flags for target state from filename
        flags = self.ns.pathname.split(os.sep)
        flags.extend(flags[-1].split('.'))
        self.ns.flags = set(i for i in flags if i)

        # Metafile stuff
        announce = self.metadata.get("announce", None)
        if announce:
            self.ns.tracker_alias = configuration.map_announce2alias(announce)

        main_file = self.ns.info_name
        if "files" in self.metadata["info"]:
            main_file = list(
                sorted((i["length"], i["path"][-1])
                       for i in self.metadata["info"]["files"]))[-1][1]
        self.ns.filetype = os.path.splitext(main_file)[1]

        # Add name traits
        kind, info = traits.name_trait(self.ns.info_name, add_info=True)
        self.ns.traits = Bunch(info)
        self.ns.traits.kind = kind
        self.ns.label = '/'.join(
            traits.detect_traits(name=self.ns.info_name,
                                 alias=self.ns.tracker_alias,
                                 filetype=self.ns.filetype)).strip('/')

        # Finally, expand commands from templates
        self.ns.commands = []
        for key, cmd in sorted(self.job.custom_cmds.items()):
            try:
                self.ns.commands.append(
                    formatting.expand_template(cmd, self.ns))
            except error.LoggableError as exc:
                self.job.LOG.error("While expanding '%s' custom command: %s" %
                                   (key, exc))
Example #4
0
    def addinfo(self):
        """ Add known facts to templating namespace.
        """
        # Basic values
        self.ns.watch_path = self.job.config.path
        self.ns.relpath = None
        for watch in self.job.config.path:
            if self.ns.pathname.startswith(watch.rstrip('/') + '/'):
                self.ns.relpath = os.path.dirname(self.ns.pathname)[len(watch.rstrip('/'))+1:]
                break

        # Build indicator flags for target state from filename
        flags = self.ns.pathname.split(os.sep)
        flags.extend(flags[-1].split('.'))
        self.ns.flags = set(i for i in flags if i)

        # Metafile stuff
        announce = self.metadata.get("announce", None)
        if announce:
            self.ns.tracker_alias = configuration.map_announce2alias(announce)

        main_file = self.ns.info_name
        if "files" in self.metadata["info"]:
            main_file = list(sorted((i["length"], i["path"][-1])
                for i in self.metadata["info"]["files"]))[-1][1]
        self.ns.filetype = os.path.splitext(main_file)[1]

        # Add name traits
        kind, info = traits.name_trait(self.ns.info_name, add_info=True)
        self.ns.traits = Bunch(info)
        self.ns.traits.kind = kind
        self.ns.label = '/'.join(traits.detect_traits(
            name=self.ns.info_name, alias=self.ns.tracker_alias, filetype=self.ns.filetype)).strip('/')

        # Finally, expand commands from templates
        self.ns.commands = []
        for key, cmd in sorted(self.job.custom_cmds.items()):
            try:
                self.ns.commands.append(formatting.expand_template(cmd, self.ns))
            except error.LoggableError, exc:
                self.job.LOG.error("While expanding '%s' custom command: %s" % (key, exc))