Ejemplo n.º 1
0
    def main(self, argv):
        """
        The main entry point of the xuff application.
        """
        import getopt

        def usage():
            print "xuff [-t] [-v[v]] xuff-files ..."

        # Parse arguments.
        try:
            opts, args = getopt.getopt(argv[1:], "tv")
        except getopt.GetoptError:
            usage()
            return

        for o, a in opts:
            if o == '-v':
                global _verbose
                _verbose += 1
            elif o == '-t':
                self.timing += 1
            else:
                usage()
                return

        # Construct our log.
        handler = logging.StreamHandler()
        handler.setFormatter(
            logging.Formatter(
                "%(asctime)s.%(msecs)03d [%(levelname)s] %(message)s",
                "%H:%M:%S"))
        logging.getLogger().addHandler(handler)
        logging.getLogger().setLevel(logging.INFO)

        # Init our XSLT extensions.
        def wrapit(fn):
            """ lxml extensions have a first dummy arg that Pyana extensions don't.  Adapt.
            """
            def inside(dummy, *args):
                try:
                    return fn(*args)
                except Exception, e:
                    print "Error in XSLT extension: %s" % e
                    raise

            return inside
Ejemplo n.º 2
0
    def main(self, argv):
        """
        The main entry point of the xuff application.
        """
        import getopt

        def usage():
            print "xuff [-t] [-v[v]] xuff-files ..."

        # Parse arguments.
        try:
            opts, args = getopt.getopt(argv[1:], "tv")
        except getopt.GetoptError:
            usage()
            return

        for o, a in opts:
            if o == '-v':
                global _verbose
                _verbose += 1
            elif o == '-t':
                self.timing += 1
            else:
                usage()
                return

        # Construct our log.
        handler = logging.StreamHandler()
        handler.setFormatter(logging.Formatter("%(asctime)s.%(msecs)03d [%(levelname)s] %(message)s", "%H:%M:%S"))
        logging.getLogger().addHandler(handler)
        logging.getLogger().setLevel(logging.INFO)

        # Init our XSLT extensions.
        def wrapit(fn):
            """ lxml extensions have a first dummy arg that Pyana extensions don't.  Adapt.
            """
            def inside(dummy, *args):
                try:
                    return fn(*args)
                except Exception, e:
                    print "Error in XSLT extension: %s" % e
                    raise
            return inside
Ejemplo n.º 3
0
    def run(self, params, args):
        foreground, = self.fillParams([('foreground', 'n')])
        foreground = self.str2bool(foreground)

        app = Airboss()
        AirbossTCPHandler.command = self
        formatter = logging.Formatter(
            "%(asctime)s - %(levelname)s - %(message)s")
        logger.setLevel(logging.DEBUG)

        if foreground:
            # just run the app no need for daemonization
            ch = logging.StreamHandler(sys.stdout)
            ch.setLevel(logging.DEBUG)
            ch.setFormatter(formatter)
            logger.addHandler(ch)
            app.run()
        else:
            # redirecting the logger to the logfile
            handler = logging.FileHandler(logfile)
            handler.setLevel(logging.INFO)
            handler.setFormatter(formatter)
            logger.addHandler(handler)
            # redirection stdout and err to the logger
            # in case we get a stack trace
            daemon_runner = MydaemonRunnner(app)
            # This ensures that the logger file handle does not
            # get closed during daemonization
            daemon_runner.daemon_context.files_preserve = \
                [handler.stream]
            # close all the fs descriptor before forking
            syslog.closelog()
            self.newdb.closeSession()
            self.newdb.close()
            self.newdb.engine.dispose()
            # we don't need the runnner to parse input line
            # since we already did it
            daemon_runner._start()
Ejemplo n.º 4
0
	def run(self, params, args):
		foreground, = self.fillParams([ ('foreground', 'n') ])
		foreground = self.str2bool(foreground)

		app = Airboss()
		AirbossTCPHandler.command = self
		formatter = logging.Formatter(
			"%(asctime)s - %(levelname)s - %(message)s")
		logger.setLevel(logging.DEBUG)

		if foreground:
			# just run the app no need for daemonization
			ch = logging.StreamHandler(sys.stdout)
			ch.setLevel(logging.DEBUG)
			ch.setFormatter(formatter)
			logger.addHandler(ch)
			app.run()
		else:
			# redirecting the logger to the logfile
			handler = logging.FileHandler(logfile)
			handler.setLevel(logging.INFO)
			handler.setFormatter(formatter)
			logger.addHandler(handler)
			# redirection stdout and err to the logger
			# in case we get a stack trace
			daemon_runner = MydaemonRunnner(app)
			# This ensures that the logger file handle does not 
			# get closed during daemonization
			daemon_runner.daemon_context.files_preserve = \
							[handler.stream]
			# close all the fs descriptor before forking
			syslog.closelog()
			self.newdb.closeSession()
			self.newdb.close()
			self.newdb.engine.dispose()
			# we don't need the runnner to parse input line
			# since we already did it
			daemon_runner._start()
Ejemplo n.º 5
0
    def main(self, argv):
        """
        The main entry point of the xuff application.
        """
        import getopt

        def usage():
            print("xuff [-t] [-v[v]] xuff-files ...")

        # Parse arguments.
        try:
            opts, args = getopt.getopt(argv[1:], "tv")
        except getopt.GetoptError:
            usage()
            return

        for o, a in opts:
            if o == '-v':
                global _verbose
                _verbose += 1
            elif o == '-t':
                self.timing += 1
            else:
                usage()
                return

        # Construct our log.
        handler = logging.StreamHandler()
        handler.setFormatter(logging.Formatter("%(asctime)s.%(msecs)03d [%(levelname)s] %(message)s", "%H:%M:%S"))
        logging.getLogger().addHandler(handler)
        logging.getLogger().setLevel(logging.INFO)

        # Init our XSLT extensions.
        def wrapit(fn):
            """ lxml extensions have a first dummy arg that Pyana extensions don't.  Adapt.
            """
            def inside(dummy, *args):
                try:
                    return fn(*args)
                except Exception as e:
                    print("Error in XSLT extension: %s" % e)
                    raise
            return inside

        ns = etree.FunctionNamespace(self.XuffNamespaceUri)
        ns['endswith'] = wrapit(endswith)
        ns['makeuri'] = wrapit(makeuri)
        ns['urlquote'] = wrapit(urlquote)
        ns['phpquote'] = wrapit(phpquote)
        ns['now'] = wrapit(now8601)
        ns['w3cdtf'] = wrapit(w3cdtf)
        ns['idfromtext'] = wrapit(idfromtext)
        ns['slugfromtext'] = wrapit(slugfromtext)
        ns['lexcode'] = wrapit(lexcode)
        ns['imgwidth'] = wrapit(imgwidth)
        ns['imgheight'] = wrapit(imgheight)
        ns['smartypants'] = wrapit(smartypants.smartypants)

        # Execute all the files.
        #try:
        for a in args:
            self.processFile(a)