2015-01-28 00:43:36 +01:00
|
|
|
""" Runs Airtime liquidsoap
|
|
|
|
"""
|
2021-06-03 15:20:39 +02:00
|
|
|
import os
|
2019-12-31 04:07:48 +01:00
|
|
|
import subprocess
|
2022-01-13 16:11:37 +01:00
|
|
|
from pathlib import Path
|
|
|
|
from typing import Optional
|
2021-06-03 15:20:39 +02:00
|
|
|
|
2022-01-13 16:11:37 +01:00
|
|
|
import click
|
|
|
|
from libretime_shared.cli import cli_logging_options
|
|
|
|
from libretime_shared.logging import level_from_name, setup_logger
|
|
|
|
from loguru import logger
|
2015-01-28 00:43:36 +01:00
|
|
|
|
2021-06-03 15:20:39 +02:00
|
|
|
from . import generate_liquidsoap_cfg
|
|
|
|
|
2020-12-26 13:44:14 +01:00
|
|
|
PYPO_HOME = "/var/tmp/airtime/pypo/"
|
|
|
|
|
2015-01-28 00:43:36 +01:00
|
|
|
|
2022-01-13 16:11:37 +01:00
|
|
|
@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)
|
2020-01-23 11:37:49 +01:00
|
|
|
|
2015-01-28 00:43:36 +01:00
|
|
|
os.environ["HOME"] = PYPO_HOME
|
2017-04-15 23:27:04 +02:00
|
|
|
|
2022-01-13 16:11:37 +01:00
|
|
|
generate_liquidsoap_cfg.run(log_filepath)
|
|
|
|
# check liquidsoap version so we can run a scripts matching the liquidsoap minor version
|
2020-12-26 13:44:14 +01:00
|
|
|
liquidsoap_version = subprocess.check_output(
|
2021-11-04 08:55:50 +01:00
|
|
|
"liquidsoap 'print(liquidsoap.version) shutdown()'",
|
2020-12-26 13:44:14 +01:00
|
|
|
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",
|
2021-10-03 16:12:04 +02:00
|
|
|
"libretime-liquidsoap",
|
2020-12-26 13:44:14 +01:00
|
|
|
"--verbose",
|
2021-11-04 08:55:50 +01:00
|
|
|
script_path,
|
2020-12-26 13:44:14 +01:00
|
|
|
]
|
2022-01-13 16:11:37 +01:00
|
|
|
if log_level.is_debug():
|
2020-12-26 13:44:14 +01:00
|
|
|
exec_args.append("--debug")
|
2022-01-13 16:11:37 +01:00
|
|
|
|
|
|
|
logger.debug(f"Liquidsoap {liquidsoap_version} using script: {script_path}")
|
2020-12-26 13:44:14 +01:00
|
|
|
os.execl(*exec_args)
|