right library api

This commit is contained in:
sqlerrorthing
2025-11-03 05:42:28 +08:00
parent fc5cc814d6
commit 2c8721e42b
2 changed files with 17 additions and 9 deletions

View File

@@ -59,8 +59,8 @@ impl Command {
} }
} }
Command::GetAutostart => get_autostart(), Command::GetAutostart => get_autostart(),
Command::ModuleVersion => module_version(), Command::ModuleVersion => println!("{}", module_version().await?),
Command::BinaryVersion => bin_version(), Command::BinaryVersion => println!("{}", bin_version()),
} }
Ok(()) Ok(())

View File

@@ -12,10 +12,14 @@ use std::ffi::CString;
use std::os::raw::c_char; use std::os::raw::c_char;
use std::path::Path; use std::path::Path;
use std::sync::LazyLock; use std::sync::LazyLock;
use anyhow::bail;
use tokio::fs::File; use tokio::fs::File;
use tokio::io::{copy, AsyncWriteExt}; use tokio::io::{copy, AsyncWriteExt};
use tokio::task::spawn_blocking;
pub static MODULE_PATH: LazyLock<&Path> =
LazyLock::new(|| Path::new("/data/adb/modules/zaprett"));
pub static MODULE_PATH: LazyLock<&Path> = LazyLock::new(|| Path::new("/data/adb/modules/zaprett"));
pub static ZAPRETT_DIR_PATH: LazyLock<&Path> = pub static ZAPRETT_DIR_PATH: LazyLock<&Path> =
LazyLock::new(|| Path::new("/storage/emulated/0/zaprett")); LazyLock::new(|| Path::new("/storage/emulated/0/zaprett"));
@@ -28,17 +32,21 @@ pub static DEFAULT_START: &str = "
--filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=6 $hostlist --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=6 $hostlist
"; ";
fn module_version() { async fn module_version() -> anyhow::Result<String> {
if let Ok(prop) = Ini::load_from_file(MODULE_PATH.join("module.prop")) let prop = spawn_blocking(|| Ini::load_from_file(MODULE_PATH.join("module.prop")))
&& let Some(props) = prop.section::<String>(None) .await??;
if let Some(props) = prop.section::<String>(None)
&& let Some(version) = props.get("version") && let Some(version) = props.get("version")
{ {
println!("{version}"); return Ok(version.into());
}
} }
fn bin_version() { bail!("Failed to get version, prop not found")
println!("{}", env!("ZAPRET_VERSION")); }
fn bin_version() -> &'static str {
env!("ZAPRET_VERSION")
} }
pub async fn merge_files( pub async fn merge_files(