tuwunel_admin/debug/
list_dependencies.rs1use 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}