lesavka: verify client runtime prerequisites
This commit is contained in:
parent
7e582507a0
commit
16ce4cabec
@ -12,6 +12,16 @@ log() {
|
|||||||
printf '==> %s\n' "$*"
|
printf '==> %s\n' "$*"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
require_command() {
|
||||||
|
local cmd=$1
|
||||||
|
local pkg_hint=$2
|
||||||
|
if command -v "$cmd" >/dev/null 2>&1; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
echo "❌ required command '$cmd' is unavailable after install (expected via $pkg_hint)" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
mkdir -p "$TMPDIR"
|
mkdir -p "$TMPDIR"
|
||||||
|
|
||||||
log "1. Installing base packages"
|
log "1. Installing base packages"
|
||||||
@ -19,7 +29,7 @@ log "1. Installing base packages"
|
|||||||
# tightly versioned PipeWire packages, and Lesavka should not force an audio
|
# tightly versioned PipeWire packages, and Lesavka should not force an audio
|
||||||
# stack upgrade just to install the client.
|
# stack upgrade just to install the client.
|
||||||
sudo pacman -Sq --needed --noconfirm \
|
sudo pacman -Sq --needed --noconfirm \
|
||||||
git rustup protobuf gcc clang evtest base-devel \
|
git rustup protobuf gcc clang evtest base-devel libpulse \
|
||||||
gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav \
|
gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav \
|
||||||
wmctrl qt6-tools wl-clipboard xclip xsel desktop-file-utils
|
wmctrl qt6-tools wl-clipboard xclip xsel desktop-file-utils
|
||||||
|
|
||||||
@ -50,6 +60,21 @@ fi
|
|||||||
log "1c. Ensuring input group access for $ORIG_USER"
|
log "1c. Ensuring input group access for $ORIG_USER"
|
||||||
sudo usermod -aG input "$ORIG_USER"
|
sudo usermod -aG input "$ORIG_USER"
|
||||||
|
|
||||||
|
log "1d. Verifying runtime tools"
|
||||||
|
require_command pactl "libpulse"
|
||||||
|
require_command wmctrl "wmctrl"
|
||||||
|
require_command qdbus6 "qt6-tools"
|
||||||
|
if ! command -v wl-paste >/dev/null 2>&1 \
|
||||||
|
&& ! command -v xclip >/dev/null 2>&1 \
|
||||||
|
&& ! command -v xsel >/dev/null 2>&1; then
|
||||||
|
echo "❌ no clipboard reader found after install (expected one of wl-clipboard/xclip/xsel)" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if ! sudo -u "$ORIG_USER" pactl info >/dev/null 2>&1; then
|
||||||
|
echo "⚠️ pactl is installed, but no PulseAudio/PipeWire Pulse server is reachable right now."
|
||||||
|
echo " Lesavka will still install, but local speaker/mic staging may stay empty until the host audio session is up."
|
||||||
|
fi
|
||||||
|
|
||||||
# 2. Rust tool-chain for both root & user
|
# 2. Rust tool-chain for both root & user
|
||||||
log "2. Ensuring Rust toolchain"
|
log "2. Ensuring Rust toolchain"
|
||||||
sudo rustup default stable
|
sudo rustup default stable
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user