mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
feat: allow setting YAZI_ID as a command line argument
As discussed in https://github.com/sxyazi/yazi/issues/989#issuecomment-2231468495, this will allow applications embedding yazi to set the YAZI_ID environment variable to a known value. Afterwards, the application can use this id with `ya pub` to publish messages to the specific yazi instance.
This commit is contained in:
parent
ed6ae000d6
commit
ba41a4f112
3 changed files with 9 additions and 1 deletions
|
|
@ -34,4 +34,8 @@ pub struct Args {
|
|||
/// Print version
|
||||
#[arg(short = 'V', long)]
|
||||
pub version: bool,
|
||||
|
||||
/// Set the YAZI_ID environment variable (integer)
|
||||
#[arg(long)]
|
||||
pub id: Option<u64>,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ pub struct Boot {
|
|||
pub flavor_dir: PathBuf,
|
||||
pub plugin_dir: PathBuf,
|
||||
pub state_dir: PathBuf,
|
||||
|
||||
pub yazi_id: Option<u64>,
|
||||
}
|
||||
|
||||
impl Boot {
|
||||
|
|
@ -184,6 +186,7 @@ impl Default for Boot {
|
|||
plugin_dir: config_dir.join("plugins"),
|
||||
config_dir,
|
||||
state_dir: Xdg::state_dir(),
|
||||
yazi_id: ARGS.id.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ pub use sendable::*;
|
|||
use server::*;
|
||||
pub use state::*;
|
||||
use stream::*;
|
||||
use yazi_boot::BOOT;
|
||||
|
||||
#[cfg(unix)]
|
||||
pub static USERS_CACHE: yazi_shared::RoCell<uzers::UsersCache> = yazi_shared::RoCell::new();
|
||||
|
|
@ -25,7 +26,7 @@ pub fn init() {
|
|||
let (tx, rx) = tokio::sync::mpsc::unbounded_channel();
|
||||
|
||||
// Client
|
||||
ID.init(yazi_shared::timestamp_us());
|
||||
ID.init(BOOT.yazi_id.unwrap_or(yazi_shared::timestamp_us()));
|
||||
PEERS.with(Default::default);
|
||||
QUEUE_TX.init(tx);
|
||||
QUEUE_RX.init(rx);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue