|
| 1 | +import logging |
| 2 | +from pathlib import Path |
| 3 | +from logging.handlers import RotatingFileHandler |
| 4 | + |
1 | 5 | import click |
2 | 6 | import elsa |
3 | 7 |
|
4 | 8 | from naucse.utils.views import forks_enabled, does_course_return_info |
| 9 | +from naucse.views import app, lesson_static_generator |
| 10 | + |
| 11 | +from naucse.freezer import NaucseFreezer |
5 | 12 |
|
6 | 13 |
|
7 | 14 | def cli(app, *, base_url=None, freezer=None): |
@@ -71,3 +78,34 @@ def fork_valid(course, suffix=""): |
71 | 78 | cli = click.CommandCollection(sources=[naucse, elsa_group]) |
72 | 79 |
|
73 | 80 | return cli() |
| 81 | + |
| 82 | + |
| 83 | +def main(): |
| 84 | + arca_log_path = Path(".arca/arca.log") |
| 85 | + arca_log_path.parent.mkdir(exist_ok=True) |
| 86 | + arca_log_path.touch() |
| 87 | + |
| 88 | + naucse_log_path = Path(".arca/naucse.log") |
| 89 | + naucse_log_path.touch() |
| 90 | + |
| 91 | + def get_handler(path, **kwargs): |
| 92 | + handler = RotatingFileHandler(path, **kwargs) |
| 93 | + formatter = logging.Formatter("[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s") |
| 94 | + |
| 95 | + handler.setLevel(logging.INFO) |
| 96 | + handler.setFormatter(formatter) |
| 97 | + |
| 98 | + return handler |
| 99 | + |
| 100 | + logger = logging.getLogger("arca") |
| 101 | + logger.addHandler(get_handler(arca_log_path, maxBytes=10000, backupCount=0)) |
| 102 | + |
| 103 | + logger = logging.getLogger("naucse") |
| 104 | + logger.addHandler(get_handler(naucse_log_path)) |
| 105 | + |
| 106 | + freezer = NaucseFreezer(app) |
| 107 | + |
| 108 | + # see the generator for details |
| 109 | + freezer.register_generator(lesson_static_generator) |
| 110 | + |
| 111 | + cli(app, base_url='https://naucse.python.cz', freezer=freezer) |
0 commit comments