From 651516d49a0aa1afe87fe90bd558d162b8877a6e Mon Sep 17 00:00:00 2001 From: sigoden Date: Mon, 30 Oct 2023 10:16:23 +0800 Subject: feat: show role info with `--role --info` (#175) --- src/config/role.rs | 7 +++++++ src/main.rs | 2 ++ 2 files changed, 9 insertions(+) (limited to 'src') diff --git a/src/config/role.rs b/src/config/role.rs index 23a69df..fee989e 100644 --- a/src/config/role.rs +++ b/src/config/role.rs @@ -1,5 +1,6 @@ use super::message::{Message, MessageRole}; +use anyhow::{Context, Result}; use serde::{Deserialize, Serialize}; const TEMP_ROLE_NAME: &str = "temp"; @@ -28,6 +29,12 @@ impl Role { self.name == TEMP_ROLE_NAME } + pub fn info(&self) -> Result { + let output = serde_yaml::to_string(&self) + .with_context(|| format!("Unable to show info about role {}", &self.name))?; + Ok(output) + } + pub fn embeded(&self) -> bool { self.prompt.contains(INPUT_PLACEHOLDER) } diff --git a/src/main.rs b/src/main.rs index f551e9c..6baf198 100644 --- a/src/main.rs +++ b/src/main.rs @@ -81,6 +81,8 @@ fn main() -> Result<()> { if cli.info { let info = if let Some(session) = &config.read().session { session.info()? + } else if let Some(role) = &config.read().role { + role.info()? } else { config.read().info()? }; -- cgit v1.2.3