Skip to repository content48 lines · 1.5 KB · rust
tenant.openagents/omega
No repository description is available.
OpenAgents Git authority 2026-07-28T04:44:27.384Z Public web read
NIP-34 coordinate
30617:7649603503856e5148d571eac2766b288a8ff1e9e35d380337a1d2b0015b4f92:omegaMaintainersHidden in public view
References2 branches · 1 tag
Read-only clone
git clone https://openagents.com/git/tenant.openagents/omega.gitBrowse files
completions.rs
1mod shells {
2 pub use clap_complete::aot::{Bash, Elvish, Fish, PowerShell, Zsh};
3 pub use clap_complete_nushell::Nushell;
4}
5
6use clap_complete::Generator;
7
8#[derive(Clone, Debug, clap::ValueEnum)]
9#[non_exhaustive]
10#[value(rename_all = "lower")]
11pub(crate) enum Shell {
12 Bash,
13 Elvish,
14 Fish,
15 Nushell,
16 PowerShell,
17 Zsh,
18}
19
20impl Generator for Shell {
21 fn file_name(&self, name: &str) -> String {
22 match self {
23 Shell::Bash => self::shells::Bash.file_name(name),
24 Shell::Elvish => self::shells::Elvish.file_name(name),
25 Shell::Fish => self::shells::Fish.file_name(name),
26 Shell::Nushell => self::shells::Nushell.file_name(name),
27 Shell::PowerShell => self::shells::PowerShell.file_name(name),
28 Shell::Zsh => self::shells::Zsh.file_name(name),
29 }
30 }
31
32 fn generate(&self, cmd: &clap::Command, buf: &mut dyn std::io::Write) {
33 match self {
34 Shell::Bash => self::shells::Bash.generate(cmd, buf),
35 Shell::Elvish => self::shells::Elvish.generate(cmd, buf),
36 Shell::Fish => self::shells::Fish.generate(cmd, buf),
37 Shell::Nushell => self::shells::Nushell.generate(cmd, buf),
38 Shell::PowerShell => self::shells::PowerShell.generate(cmd, buf),
39 Shell::Zsh => self::shells::Zsh.generate(cmd, buf),
40 }
41 }
42}
43
44pub(crate) fn main(cmd: &clap::Command, shell: &Shell) {
45 let buf = &mut std::io::stdout();
46 shell.generate(cmd, buf);
47}
48