mirror of
https://github.com/by-sonic/tglock.git
synced 2026-07-31 07:45:13 +03:00
00d24a8647
Проверка содержимого бандла, добавленная в #33, работала на Linux и давала ложное «в бандле не GUI» на macOS. Причина в BSD grep: в UTF-8-локали он молча не находит строки в бинарных данных там, где GNU grep находит. Из-за этого задача macOS в релизе beta.4 упала уже после загрузки артефактов, а вместе с ней снова пропустилась задача с CLI-бинарями. Сами артефакты beta.4 при этом корректны — проверено скачиванием: в бандле tglock на 20.3 МБ, universal/fat, признаки GUI на месте, признаков CLI нет. Не хватает только tglock-cli-*. Проверка вынесена в scripts/verify_bundle_binary.py и вызывается из всех трёх мест: задачи CI bundle, проверки macOS и проверки Linux в релизе. Один скрипт вместо трёх копий шелл-кода исключает и платформенные различия grep, и расхождение копий между собой. Скрипт проверен на реальных исторических артефактах: beta.4 (исправный) → код 0 beta.3 (сломанный) → код 1, найдены allow-direct и secret-file beta.2 (сломанный) → код 1, то же
65 lines
1.7 KiB
TOML
65 lines
1.7 KiB
TOML
[package]
|
|
name = "tglock"
|
|
version = "2.0.0-beta.5"
|
|
edition = "2021"
|
|
rust-version = "1.88"
|
|
description = "Telegram unblock via local WebSocket tunnel"
|
|
license = "MIT"
|
|
autobins = false
|
|
|
|
[features]
|
|
default = ["gui"]
|
|
# The desktop GUI. Turning it off drops Tauri, the system WebView and the
|
|
# frontend bundle from the build, which is what makes headless servers and
|
|
# machines without a GPU or monitor able to build and run TGLock at all.
|
|
gui = ["dep:tauri", "dep:tauri-build", "dep:open"]
|
|
# The headless binary. Deliberately NOT in `default`.
|
|
#
|
|
# When both binaries exist in one build, the Tauri bundler picks the wrong one
|
|
# as the application: `tauri build --target <triple>` packaged tglock-cli and
|
|
# shipped it as the app in v2.0.0-beta.2 and v2.0.0-beta.3. Keeping the CLI
|
|
# behind its own non-default feature means it simply does not exist during an
|
|
# application build, so there is nothing to pick wrongly.
|
|
cli = ["dep:clap"]
|
|
|
|
[lib]
|
|
name = "tglock"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "tglock"
|
|
path = "src/main.rs"
|
|
required-features = ["gui"]
|
|
|
|
[[bin]]
|
|
name = "tglock-cli"
|
|
path = "src/bin/cli.rs"
|
|
required-features = ["cli"]
|
|
|
|
[dependencies]
|
|
tauri = { version = "2", features = [], optional = true }
|
|
open = { version = "5", optional = true }
|
|
clap = { version = "4", features = ["derive"], optional = true }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
tokio = { version = "1", features = [
|
|
"rt-multi-thread",
|
|
"net",
|
|
"io-util",
|
|
"time",
|
|
"macros",
|
|
"sync",
|
|
"signal",
|
|
] }
|
|
tokio-tungstenite = { version = "0.24", features = ["native-tls"] }
|
|
native-tls = "0.2"
|
|
futures-util = "0.3"
|
|
aes = "0.8"
|
|
ctr = "0.9"
|
|
cipher = "0.4"
|
|
sha2 = "0.10"
|
|
rand = "0.8"
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [], optional = true }
|