Skip to main content

tuwunel_admin/debug/
list_dependencies.rs

1use tuwunel_core::{
2	Result,
3	either::Either::{Left, Right},
4	info,
5};
6
7use crate::admin_command;
8
9#[admin_command]
10pub(super) async fn list_dependencies(&self, names: bool) -> Result {
11	if names {
12		let out = info::cargo::dependencies_names().join(" ");
13		return self.write_str(&out).await;
14	}
15
16	let deps = info::cargo::dependencies();
17	writeln!(self, "| name | version | features |").await?;
18	writeln!(self, "| ---- | ------- | -------- |").await?;
19	for (name, dep) in deps {
20		let version = dep.try_req().map_or(Right("*"), Left);
21		let feats = dep.req_features();
22		let feats = if !feats.is_empty() {
23			feats.join(" ")
24		} else {
25			String::new()
26		};
27
28		writeln!(self, "| {name} | {version} | {feats} |").await?;
29	}
30
31	Ok(())
32}