plate-config-app/build_linux.sh
Danil Iarosh 5513eb8a56 Improve controller startup handshake and builds
- Добавлен стартовый handshake: ожидание строки версии контроллера, пауза 2000 мс и подтверждение готовности только по READY!.

- Исправлена работа COM-буфера и аппаратного сброса через RTS, добавлены модульные тесты протокола.

- Добавлена нативная сборка для Debian 13 x86_64 и обновлена документация.

- Улучшена очистка Windows-сборки и кроссплатформенная обработка devnull.
2026-09-11 15:01:45 +03:00

53 lines
1.7 KiB
Bash

#!/usr/bin/env bash
# Нативная сборка одного исполняемого файла для Debian x86_64.
set -euo pipefail
project_root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
venv_dir="$project_root/.venv-linux"
build_dir="$project_root/build-linux"
dist_dir="$project_root/dist-linux"
package_name="plate_config_app-debian13-x86_64"
package_dir="$dist_dir/$package_name"
cd "$project_root"
rm -rf "$build_dir" "$dist_dir"
python3 -m venv "$venv_dir"
"$venv_dir/bin/python" -m pip install --upgrade pip
"$venv_dir/bin/python" -m pip install -r requirements.txt -r requirements-build.txt
"$venv_dir/bin/python" -m unittest discover -s tests -v
"$venv_dir/bin/python" -m PyInstaller \
--noconfirm \
--clean \
--workpath "$build_dir" \
--distpath "$dist_dir" \
plate_config_app.spec
mkdir -p "$package_dir"
install -m 0755 "$dist_dir/plate_config_app" "$package_dir/plate_config_app"
for resource_dir in light_modes input_mappings commands; do
cp -a "$resource_dir" "$package_dir/$resource_dir"
done
cat > "$package_dir/README.txt" <<'EOF'
Plate Config App для Debian 13 x86_64
Запуск:
./plate_config_app
Папки light_modes, input_mappings и commands можно изменять без пересборки.
Для доступа к USB-COM добавьте пользователя в группу dialout и войдите в систему заново:
sudo usermod -aG dialout "$USER"
EOF
(
cd "$dist_dir"
zip -qr "$package_name.zip" "$package_name"
sha256sum "$package_name.zip" > "$package_name.zip.sha256"
)
printf 'Готово: %s\n' "$dist_dir/$package_name.zip"
sha256sum "$dist_dir/$package_name.zip"