summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/config/role.rs7
-rw-r--r--src/main.rs2
2 files changed, 9 insertions, 0 deletions
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<String> {
+ 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()?
};