feat(analyzer): override paths using env variables
Allow overriding FFMPEG, FFPROBE, or LIQUIDSOAP paths using env variables.
This commit is contained in:
parent
9413bd5a29
commit
04e5a7e404
|
@ -1,14 +1,18 @@
|
||||||
import re
|
import re
|
||||||
from math import inf
|
from math import inf
|
||||||
|
from os import getenv
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List, Optional, Tuple
|
from typing import List, Optional, Tuple
|
||||||
|
|
||||||
from ._utils import run_
|
from ._utils import run_
|
||||||
|
|
||||||
|
FFPROBE = getenv("FFPROBE_PATH", "ffprobe")
|
||||||
|
FFMPEG = getenv("FFMPEG_PATH", "ffmpeg")
|
||||||
|
|
||||||
|
|
||||||
def _ffmpeg(*args, **kwargs):
|
def _ffmpeg(*args, **kwargs):
|
||||||
return run_(
|
return run_(
|
||||||
"ffmpeg",
|
FFMPEG,
|
||||||
*args,
|
*args,
|
||||||
"-f",
|
"-f",
|
||||||
"null",
|
"null",
|
||||||
|
@ -20,7 +24,7 @@ def _ffmpeg(*args, **kwargs):
|
||||||
|
|
||||||
|
|
||||||
def _ffprobe(*args, **kwargs):
|
def _ffprobe(*args, **kwargs):
|
||||||
return run_("ffprobe", *args, **kwargs)
|
return run_(FFPROBE, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
_PROBE_REPLAYGAIN_RE = re.compile(
|
_PROBE_REPLAYGAIN_RE = re.compile(
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
from os import getenv
|
||||||
|
|
||||||
|
|
||||||
|
LIQUIDSOAP = getenv("LIQUIDSOAP_PATH", "liquidsoap")
|
|
@ -5,14 +5,13 @@ from typing import Any, Dict
|
||||||
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
|
from ._liquidsoap import LIQUIDSOAP
|
||||||
|
|
||||||
|
|
||||||
class UnplayableFileError(Exception):
|
class UnplayableFileError(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
LIQUIDSOAP_EXECUTABLE = "liquidsoap"
|
|
||||||
|
|
||||||
|
|
||||||
def analyze_playability(filename: str, metadata: Dict[str, Any]):
|
def analyze_playability(filename: str, metadata: Dict[str, Any]):
|
||||||
"""Checks if a file can be played by Liquidsoap.
|
"""Checks if a file can be played by Liquidsoap.
|
||||||
:param filename: The full path to the file to analyzer
|
:param filename: The full path to the file to analyzer
|
||||||
|
@ -20,7 +19,7 @@ def analyze_playability(filename: str, metadata: Dict[str, Any]):
|
||||||
:return: The metadata dictionary
|
:return: The metadata dictionary
|
||||||
"""
|
"""
|
||||||
command = [
|
command = [
|
||||||
LIQUIDSOAP_EXECUTABLE,
|
LIQUIDSOAP,
|
||||||
"-v",
|
"-v",
|
||||||
"-c",
|
"-c",
|
||||||
"output.dummy(audio_to_stereo(single(argv(1))))",
|
"output.dummy(audio_to_stereo(single(argv(1))))",
|
||||||
|
|
|
@ -21,7 +21,7 @@ def test_analyze_playability(filepath):
|
||||||
|
|
||||||
def test_analyze_playability_missing_liquidsoap():
|
def test_analyze_playability_missing_liquidsoap():
|
||||||
with patch(
|
with patch(
|
||||||
"libretime_analyzer.pipeline.analyze_playability.LIQUIDSOAP_EXECUTABLE",
|
"libretime_analyzer.pipeline._liquidsoap.LIQUIDSOAP",
|
||||||
"foobar",
|
"foobar",
|
||||||
):
|
):
|
||||||
analyze_playability(str(FILES[0].path), {})
|
analyze_playability(str(FILES[0].path), {})
|
||||||
|
|
Loading…
Reference in New Issue