mirror of
https://github.com/openwrt/packages.git
synced 2026-05-31 06:51:51 +08:00
cc17ed7fa4
Changes since 1.8.11: - 1.8.16: Enhanced Tidal/Subsonic modules; improved Recoll 1.40 compatibility - 1.8.17: Resolved Qobuz plugin incompatibilities on modern distributions - 1.8.18: Fix many issues with the thoroughly broken Qobuz plugin - 1.9.0: Restructured Qobuz plugin; improved search; fixed custom icon support - 1.9.1: Subsonic and Tidal module enhancements - 1.9.2: Resolved Qobuz login issues with OpenHome credentials service - 1.9.5: Repaired broken Qobuz plugin; fixed gcc 15 compilation crash - 1.9.6: Fixed media server crash with malformed proxy URLs - 1.9.7: Fixed streaming URL handling with colon characters - 1.9.11: Vastly improved Qobuz search; uprcl property operators and indexing - 1.9.12: Accelerated uprcl initialization via stored Recoll data - 1.9.13: Improved OpenHome source switching; major Subsonic plugin overhaul - 1.9.14: Custom HTTP headers support for plugins; fixed rare proxy deadlock - 1.9.15: Enhanced Linn Kinsky compatibility; improved radio metadata handling - 1.9.17: Restored Qobuz connectivity via new OAuth method Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
47 lines
1.8 KiB
Bash
47 lines
1.8 KiB
Bash
#!/bin/sh
|
|
|
|
case "$1" in
|
|
upmpdcli)
|
|
# Version check: upmpdcli prints version to stderr on bad args, or to
|
|
# stdout with --version; try both.
|
|
ver_out=$(upmpdcli --version 2>&1 || upmpdcli -v 2>&1 || true)
|
|
echo "$ver_out" | grep -qF "$2" || {
|
|
# Some builds print only the short semver, not the full string;
|
|
# check for the major.minor part at minimum.
|
|
major_minor=$(echo "$2" | cut -d. -f1-2)
|
|
echo "$ver_out" | grep -qF "$major_minor" || {
|
|
echo "FAIL: version '$2' not found in: $ver_out"
|
|
exit 1
|
|
}
|
|
}
|
|
echo "Version check passed"
|
|
|
|
# Binary must be executable
|
|
[ -x /usr/bin/upmpdcli ] || { echo "FAIL: /usr/bin/upmpdcli not executable"; exit 1; }
|
|
|
|
# Shared data files: OHCredentials and radio list MUST be present
|
|
[ -d /usr/share/upmpdcli ] || { echo "FAIL: /usr/share/upmpdcli missing"; exit 1; }
|
|
|
|
# Config template must have been installed
|
|
[ -f /etc/upmpdcli.conf ] || { echo "FAIL: /etc/upmpdcli.conf missing"; exit 1; }
|
|
|
|
# The config file must mention key directives that users typically
|
|
# customise; catch packaging regressions that ship a truncated config.
|
|
grep -q "friendlyname" /etc/upmpdcli.conf || \
|
|
{ echo "FAIL: 'friendlyname' missing from config"; exit 1; }
|
|
grep -q "mpdhost" /etc/upmpdcli.conf || \
|
|
{ echo "FAIL: 'mpdhost' missing from config"; exit 1; }
|
|
|
|
# Attempt a dry-run: upmpdcli will fail to connect to MPD (none
|
|
# running) but must exit with a recognisable error, not a crash/signal.
|
|
# We rely on the fact that it prints something before exiting.
|
|
tmplog=$(mktemp /tmp/upmpdcli-test.XXXXXX)
|
|
timeout 3 upmpdcli -c /etc/upmpdcli.conf >"$tmplog" 2>&1 || true
|
|
# Must have produced some output (startup log or error)
|
|
[ -s "$tmplog" ] || { echo "FAIL: upmpdcli produced no output"; rm -f "$tmplog"; exit 1; }
|
|
echo "Startup output (first 5 lines):"
|
|
head -5 "$tmplog"
|
|
rm -f "$tmplog"
|
|
;;
|
|
esac
|