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()
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.'))
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.'))
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())
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())
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())