diff options
| author | sigoden <sigoden@gmail.com> | 2024-02-23 13:15:18 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-23 13:15:18 +0800 |
| commit | 763841212826142ce248ef3d94524424c6316b0b (patch) | |
| tree | 6805fb523b3fa149744d8534928941a023e0d149 /src/config/mod.rs | |
| parent | 6c0204e6965bf13c3d883ea5fa65d52415acd530 (diff) | |
| download | aichat-763841212826142ce248ef3d94524424c6316b0b.tar.gz | |
feat: support `-e/--execute` to execute shell command (#318)
Diffstat (limited to 'src/config/mod.rs')
| -rw-r--r-- | src/config/mod.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/config/mod.rs b/src/config/mod.rs index df74716..d38cbf3 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -158,7 +158,7 @@ impl Config { Ok(config) } - pub fn onstart(&mut self) -> Result<()> { + pub fn prelude(&mut self) -> Result<()> { let prelude = self.prelude.clone(); let err_msg = || format!("Invalid prelude '{}", prelude); match prelude.split_once(':') { @@ -275,6 +275,20 @@ impl Config { pub fn set_role(&mut self, name: &str) -> Result<()> { let role = self.retrieve_role(name)?; + self.set_role_obj(role) + } + + pub fn set_execute_role(&mut self) -> Result<()> { + let role = Role::for_execute(); + self.set_role_obj(role) + } + + pub fn set_describe_role(&mut self) -> Result<()> { + let role = Role::for_describe(); + self.set_role_obj(role) + } + + pub fn set_role_obj(&mut self, role: Role) -> Result<()> { if let Some(session) = self.session.as_mut() { session.update_role(Some(role.clone()))?; } |
