""" Runs Airtime liquidsoap """ import os import subprocess from pathlib import Path from typing import Optional import click from libretime_shared.cli import cli_logging_options from libretime_shared.logging import level_from_name, setup_logger from loguru import logger from . import generate_liquidsoap_cfg PYPO_HOME = "/var/tmp/airtime/pypo/" @click.command() @cli_logging_options def cli(log_level: int, log_filepath: Optional[Path]): """ Run liquidsoap. """ log_level = level_from_name(log_level) setup_logger(log_level, log_filepath) os.environ["HOME"] = PYPO_HOME generate_liquidsoap_cfg.run(log_filepath) # check liquidsoap version so we can run a scripts matching the liquidsoap minor version liquidsoap_version = subprocess.check_output( "liquidsoap 'print(liquidsoap.version) shutdown()'", shell=True, universal_newlines=True, )[0:3] script_path = os.path.join( os.path.dirname(__file__), liquidsoap_version, "ls_script.liq" ) exec_args = [ "/usr/bin/liquidsoap", "libretime-liquidsoap", "--verbose", script_path, ] if log_level.is_debug(): exec_args.append("--debug") logger.debug(f"Liquidsoap {liquidsoap_version} using script: {script_path}") os.execl(*exec_args)