26 lines
683 B
Python
26 lines
683 B
Python
import re
|
|
from subprocess import run
|
|
from typing import Tuple
|
|
|
|
LIQUIDSOAP_VERSION_RE = re.compile(r"(?:Liquidsoap )?(\d+).(\d+).(\d+)")
|
|
LIQUIDSOAP_MIN_VERSION = (1, 4, 0)
|
|
|
|
|
|
def parse_liquidsoap_version(version: str) -> Tuple[int, int, int]:
|
|
match = LIQUIDSOAP_VERSION_RE.search(version)
|
|
|
|
if match is None:
|
|
return (0, 0, 0)
|
|
return (int(match.group(1)), int(match.group(2)), int(match.group(3)))
|
|
|
|
|
|
def get_liquidsoap_version() -> Tuple[int, int, int]:
|
|
cmd = run(
|
|
("liquidsoap", "--check", "print(liquidsoap.version) shutdown()"),
|
|
check=True,
|
|
capture_output=True,
|
|
text=True,
|
|
)
|
|
|
|
return parse_liquidsoap_version(cmd.stdout)
|