chore: optimzie role args

pull/71/head
sigoden 1 year ago
parent 9c04455e36
commit ad04f60365

@ -119,8 +119,12 @@ impl Config {
Ok(())
}
pub fn find_role(&self, name: &str) -> Option<Role> {
self.roles.iter().find(|v| v.match_name(name)).cloned()
pub fn get_role(&self, name: &str) -> Option<Role> {
self.roles.iter().find(|v| v.match_name(name)).map(|v| {
let mut role = v.clone();
role.complete_prompt_args(name);
role
})
}
pub fn config_dir() -> Result<PathBuf> {
@ -199,9 +203,8 @@ impl Config {
}
pub fn change_role(&mut self, name: &str) -> Result<String> {
match self.find_role(name) {
Some(mut role) => {
role.complete_prompt_args(name);
match self.get_role(name) {
Some(role) => {
if let Some(conversation) = self.conversation.as_mut() {
conversation.update_role(&role)?;
}

@ -39,7 +39,7 @@ fn main() -> Result<()> {
Some(name) => Some(
config
.read()
.find_role(name)
.get_role(name)
.ok_or_else(|| anyhow!("Unknown role '{name}'"))?,
),
None => None,

Loading…
Cancel
Save