sintonia/playout/libretime_playout/liquidsoap/entrypoint.py

40 lines
988 B
Python
Raw Permalink Normal View History

feat(playout): enhance playout logging (#1495) Some initial work on modernizing the playout app. This replace any custom logger or logging based logger with the logging tools from libretime_shared.logging and loguru. Removed all the thread/function assigned logger (self.logger = ...), as this makes it part of the logic (passing logger though function args) as it should not. Of a dedicated logger is required for a specific task, it should use the create_task_logger function. - refactor: remove dead code - refactor: remove py2 specific fix - feat: remove unused test command - feat: setup shared cli and logging tools - feat: replace logging with loguru - feat: setup shared cli and logging tools for notify - fix: warn method deos not exist - feat: make cli setup the entrypoint - fix: install shared modules globally in production use extra_requires to load local packages in dev environement - feat: configure log path in systemd service - feat: default behavior is to log to console only - feat: create log dir during install - chore: add comment - fix: don't create useless dir in install - fix: move notify logs to /var/log/libretime dir - fix: update setup_logger attrs - style: linting - fix: replace verbosity flag with log-level flag - feat: use shared logging tool in liquidsoap - fix: pass logger down to api client - feat: allow custom log_filepath in liquidsoap config - chore: add pylintrc to playout - refactor: fix pylint errors - feat: set liquidsoap log filepath in systemd service - fix: missing setup entrypoint update BREAKING CHANGE: for playout and liquidsoap the default log file path changed to None and will only log to the console when developing / testing. Unless you are running the app as a systemd service (production) the default logs filepaths changed: from "/var/log/airtime/pypo/pypo.log" to "/var/log/libretime/playout.log" and from "/var/log/airtime/pypo-liquidsoap/ls_script.log" to "/var/log/libretime/liquidsoap.log" BREAKING CHANGE: for playout-notify the default log file path changed from "/var/log/airtime/pypo/notify.log" to "/var/log/libretime/playout-notify.log"
2022-01-13 16:11:37 +01:00
from pathlib import Path
from typing import Optional, Tuple
from jinja2 import Environment, PackageLoader
from ..config import Config
from .models import Info, StreamPreferences
from .utils import quote
2021-05-27 16:23:02 +02:00
here = Path(__file__).parent
templates_loader = PackageLoader(__name__, "templates")
templates = Environment( # nosec
loader=templates_loader,
keep_trailing_newline=True,
)
templates.filters["quote"] = quote
2020-01-23 11:37:49 +01:00
def generate_entrypoint(
log_filepath: Optional[Path],
config: Config,
preferences: StreamPreferences,
info: Info,
version: Tuple[int, int, int],
) -> str:
paths = {}
paths["lib_filepath"] = here / f"{version[0]}.{version[1]}/ls_script.liq"
2021-05-27 16:23:02 +02:00
if log_filepath is not None:
paths["log_filepath"] = log_filepath.resolve()
2020-01-23 11:37:49 +01:00
return templates.get_template("entrypoint.liq.j2").render(
config=config.model_copy(),
preferences=preferences,
info=info,
paths=paths,
version=version,
)