mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-11-08 02:52:07 +08:00
fix(packaging): stop shipping frontend-contract in Linux bundles
tauri-cli's get_binaries() adds every file in src-tauri/src/bin/ as a bundle binary, and the deb/rpm packagers copy each one to /usr/bin, so the dev-only bindings generator ended up as /usr/bin/frontend-contract (1.0 MB) in release packages and broke downstream repackaging (Copr: "Installed but unpackaged file(s) found"). There is no bundler option to exclude a binary, so move the generator to an example target, which cargo keeps dev-only and get_binaries() never scans, and invoke it via 'cargo run --example'. Ref https://github.com/clash-verge-rev/clash-verge-rev/pull/8131#issuecomment-6137907930
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
// Dev-only target: Tauri ships everything under src/bin/ to /usr/bin in deb/rpm
|
||||
// bundles (PR #8131), so this generator must stay an example, never a bin.
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let mut args = std::env::args_os().skip(1);
|
||||
let output = args
|
||||
.next()
|
||||
.map(std::path::PathBuf::from)
|
||||
.unwrap_or_else(|| std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("../src/services/bindings.ts"));
|
||||
if args.next().is_some() {
|
||||
return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "expected at most one output path").into());
|
||||
}
|
||||
app_lib::ipc::builder().export(specta_typescript::Typescript::default(), output)?;
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user