ble version

This commit is contained in:
2026-10-16 07:19:06 +03:00
parent 32abb8bf0a
commit f74d52d39d
65 changed files with 3835 additions and 143 deletions
+24 -3
View File
@@ -33,6 +33,7 @@ fi
# --- проверяем, что РЕАЛЬНО нужное на месте (а не код возврата dpkg) ---
command -v python3 >/dev/null || die "python3 не установился"
python3 -c 'import flask' 2>/dev/null || die "python3-flask не установился"
command -v bluetoothctl >/dev/null 2>&1 || warn "bluez/bluetoothctl отсутствует — BLE collector не заработает"
command -v nmcli >/dev/null || warn "nmcli отсутствует — сетевые настройки из web не заработают"
ls /usr/lib/*/qt5/qml/QtQuick/Controls.2 >/dev/null 2>&1 \
|| warn "QML-модуль QtQuick.Controls 2 не найден — UI может не подняться"
@@ -41,8 +42,8 @@ ls /usr/lib/*/qt5/qml/QtQuick/Controls.2 >/dev/null 2>&1 \
# 2. Системный пользователь
# ---------------------------------------------------------------------------
id "$USER_NAME" >/dev/null 2>&1 || useradd -r -s /bin/false "$USER_NAME"
# группы для eglfs/KMS/тача
usermod -aG video,render,input "$USER_NAME" 2>/dev/null || true
# группы для eglfs/KMS/тача + BLE (BlueZ SystemBus)
usermod -aG video,render,input,bluetooth "$USER_NAME" 2>/dev/null || true
# ---------------------------------------------------------------------------
# 3. Версионированная раскладка
@@ -51,8 +52,26 @@ install -d "$ROOT"/versions/"$VER" "$ROOT"/config "$ROOT"/icons "$ROOT"/run "$RO
[ -f "$BUNDLE_DIR/app/ButtonTask" ] || die "нет бинарника app/ButtonTask в бандле"
install -m0755 "$BUNDLE_DIR/app/ButtonTask" "$ROOT/versions/$VER/ButtonTask"
cp -a "$BUNDLE_DIR/webconfig" "$ROOT/versions/$VER/"
if [ -d "$BUNDLE_DIR/collector" ]; then
cp -a "$BUNDLE_DIR/collector" "$ROOT/versions/$VER/"
log "collector установлен в versions/$VER/collector"
else
warn "collector/ нет в бандле — BLE-сервис не будет работать"
fi
ln -sfn "$ROOT/versions/$VER" "$ROOT/current"
# bless (GATT) — offline wheels из бандла, иначе pip с индексом
if [ -d "$ROOT/versions/$VER/collector/wheels" ] && ls "$ROOT/versions/$VER/collector/wheels"/*.whl >/dev/null 2>&1; then
log "pip install bless из collector/wheels (offline)"
python3 -m pip install --upgrade --no-index --find-links "$ROOT/versions/$VER/collector/wheels" bless \
|| warn "pip offline install bless не удался"
elif [ -f "$ROOT/versions/$VER/collector/requirements.txt" ]; then
log "pip install -r collector/requirements.txt"
python3 -m pip install -r "$ROOT/versions/$VER/collector/requirements.txt" \
|| warn "pip install bless не удался (нужен интернет или wheels/)"
fi
python3 -c 'import bless' 2>/dev/null || warn "bless не импортируется — buttontask-collector не стартует"
# config — по умолчанию не перезатираем (upgrade-safe); BUTTONTASK_RESET_CONFIG=1 — из бандла
reset_cfg="${BUTTONTASK_RESET_CONFIG:-0}"
case "$reset_cfg" in
@@ -178,7 +197,9 @@ systemctl stop display-manager 2>/dev/null || true
# 10. Включаем сервисы (старт — после ребута)
# ---------------------------------------------------------------------------
systemctl daemon-reload
systemctl enable buttontask buttontask-web buttontask-network >/dev/null 2>&1 || \
systemctl enable bluetooth >/dev/null 2>&1 || warn "не удалось enable bluetooth"
systemctl enable buttontask buttontask-web buttontask-network buttontask-collector >/dev/null 2>&1 || \
systemctl enable buttontask buttontask-web buttontask-collector >/dev/null 2>&1 || \
systemctl enable buttontask buttontask-web >/dev/null 2>&1 || \
die "не удалось включить сервисы (проверьте имена юнитов)"