Example #1
0
def serve(site, director):
    """Run a simple web server that serve the output directory and watches for
    changes to the site. When something is changed, it should be generated.
    """
    # Override the log level to display some interactive messages with the
    # user. With the dev server running, there's no sense in being silent.
    logger.setLevel(logging.INFO)

    # Start the watchdog.
    event_handler = SiteHandler(director)
    observer = Observer()
    observer.schedule(event_handler, site.path, recursive=True)
    observer.start()

    # The simple HTTP server is pretty dumb and does not even take a path to
    # serve. The only way to serve the right path is to change the directory.
    outdir = director.outdir
    os.chdir(outdir)

    socketserver.TCPServer.allow_reuse_address = True
    httpd = socketserver.TCPServer(('', PORT), SimpleHTTPRequestHandler)

    logger.info(
        _('Serving {outdir} at http://localhost:{port}/.'
          '\nPress Ctrl-C to quit.').format(outdir=outdir, port=PORT))
    try:
        httpd.serve_forever()
    except KeyboardInterrupt:
        logger.info(_('\nBye.'))
        observer.stop()

    observer.join()
Example #2
0
def main(argv=sys.argv):
    args = parse(argv)

    if args.verbose:
        logger.setLevel(logging.INFO)

    if args.debug:
        logger.setLevel(logging.DEBUG)

    try:
        args.func(args)
    except AbortError as abort:
        logger.error(str(abort))
        sys.exit(_('Incomplete.'))
Example #3
0
def main(argv=sys.argv):
    args = parse(argv)

    if args.verbose:
        logger.setLevel(logging.INFO)

    if args.debug:
        logger.setLevel(logging.DEBUG)

    try:
        args.func(args)
    except AbortError as abort:
        logger.error(str(abort))
        sys.exit(_('Incomplete.'))
Example #4
0
def main(argv=sys.argv):
    args = parse_args(argv)

    if args.verbose:
        logger.setLevel(logging.INFO)

    if args.debug:
        logger.setLevel(logging.DEBUG)

    try:
        site = Site(args.site)
        valid, message = site.is_valid()
        if not valid:
            raise AbortError(_('Invalid site source: {0}').format(message))

        config = build_config(site.config_file, args)
        director = Director(config, site)
        director.produce()
        print(_('Complete.'))
    except AbortError as abort:
        logger.error(str(abort))
        sys.exit(_('Incomplete.'))
Example #5
0
 def test_debug_sets_logging(self):
     logger.setLevel(logging.CRITICAL)
     argv = self._make_argv_with('-d')
     with self.assertRaises(SystemExit):
         entry.main(argv)
     self.assertEqual(logging.DEBUG, logger.getEffectiveLevel())
Example #6
0
 def test_debug_sets_logging(self):
     logger.setLevel(logging.CRITICAL)
     self.arguments.append('-d')
     self.assertRaises(SystemExit, command.main, self.arguments)
     self.assertEqual(logging.DEBUG, logger.getEffectiveLevel())
Example #7
0
 def test_verbose_sets_logging(self):
     logger.setLevel(logging.CRITICAL)
     self.arguments.append('-v')
     self.assertRaises(SystemExit, command.main, self.arguments)
     self.assertEqual(logging.INFO, logger.getEffectiveLevel())
Example #8
0
 def test_debug_sets_logging(self):
     logger.setLevel(logging.CRITICAL)
     argv = self._make_argv_with('-d')
     with self.assertRaises(SystemExit):
         entry.main(argv)
     self.assertEqual(logging.DEBUG, logger.getEffectiveLevel())