build(desktop): цели make, README и устойчивость обёртки к правам на логи
- Makefile: `desktop-check`, `desktop-build` (с ключом подписи обновлений, без ключа — сборка без артефактов обновления) и `desktop-run`; кэши cargo и npm держатся в .cache/, как у остальных инструментов проекта. - desktop/README.md: сборка, запуск, аргументы командной строки, настройки, deep links и открытые пункты Фазы 6. - bundle.targets = all: бандлы по умолчанию для текущей ОС (macOS: .app/.dmg). - Логирование подключается в setup и больше не роняет приложение, если каталог логов недоступен на запись (песочница, домашний каталог только для чтения). - Разбор аргументов вынесен в Cli::from_args и покрыт тестами (--instance, --minimized, --settings, --autostart on|off). - cargo fmt по модулям обёртки.
This commit is contained in:
@@ -186,6 +186,39 @@ web-test: ## Тесты web-клиента (vitest)
|
||||
web-build: ## Сборка web-клиента в web/dist
|
||||
cd $(WEB_DIR) && npm run build
|
||||
|
||||
# Desktop-обёртка (Фаза 6, docs/client-tauri.md). Кэши инструментов — в .cache,
|
||||
# адрес инстанса по умолчанию задаёт сама обёртка (https://gl.mhspx.su).
|
||||
DESKTOP_DIR := $(ROOT)/desktop
|
||||
DESKTOP_TAURI_DIR := $(DESKTOP_DIR)/src-tauri
|
||||
DESKTOP_KEY ?= $(BUILD_DIR)/desktop-keys/glchat-updater.key
|
||||
TAURI_CLI ?= npx --yes @tauri-apps/cli@^2
|
||||
export CARGO_HOME ?= $(CACHE_DIR)/cargo
|
||||
export NPM_CONFIG_CACHE ?= $(CACHE_DIR)/npm
|
||||
|
||||
.PHONY: desktop-check
|
||||
desktop-check: ## Проверки Rust-обёртки: fmt, clippy, тесты
|
||||
cd $(DESKTOP_TAURI_DIR) && cargo fmt --check
|
||||
cd $(DESKTOP_TAURI_DIR) && cargo clippy --release --all-targets
|
||||
cd $(DESKTOP_TAURI_DIR) && cargo test --release
|
||||
|
||||
.PHONY: desktop-build
|
||||
desktop-build: ## Собрать desktop-приложение (бандлы по умолчанию для текущей ОС)
|
||||
@if [ -f "$(DESKTOP_KEY)" ]; then \
|
||||
echo " ключ подписи обновлений: $(DESKTOP_KEY)"; \
|
||||
cd $(DESKTOP_TAURI_DIR) && \
|
||||
TAURI_SIGNING_PRIVATE_KEY="$$(cat $(DESKTOP_KEY))" \
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD="$${TAURI_SIGNING_PRIVATE_KEY_PASSWORD:-glchat-local-dev}" \
|
||||
$(TAURI_CLI) build; \
|
||||
else \
|
||||
echo " ключа $(DESKTOP_KEY) нет: сборка без артефактов автообновления"; \
|
||||
cd $(DESKTOP_TAURI_DIR) && \
|
||||
$(TAURI_CLI) build --config '{"bundle":{"createUpdaterArtifacts":false}}'; \
|
||||
fi
|
||||
|
||||
.PHONY: desktop-run
|
||||
desktop-run: ## Запустить собранное приложение (macOS); доп. аргументы — ARGS=…
|
||||
open -a "$(DESKTOP_TAURI_DIR)/target/release/bundle/macos/glchat.app" $(ARGS)
|
||||
|
||||
.PHONY: docker-build
|
||||
docker-build: ## Собрать образ приложения
|
||||
docker build \
|
||||
|
||||
Reference in New Issue
Block a user