1
+ mod completion;
1
2
mod create;
2
3
mod delete;
3
4
mod inspect;
4
5
mod list;
5
6
mod token;
6
7
7
- use crate :: Cli ;
8
- use clap:: CommandFactory ;
9
- use clap_complete:: {
10
- generate,
11
- shells:: { Bash , Fish , Zsh } ,
12
- } ;
13
- use std:: path:: Path ;
14
8
use std:: process:: ExitCode ;
15
- use std:: { env, io} ;
16
9
17
10
#[ derive( Debug , clap:: Subcommand ) ]
18
11
pub enum Command {
@@ -21,7 +14,7 @@ pub enum Command {
21
14
Token ( token:: GetToken ) ,
22
15
List ( list:: List ) ,
23
16
Inspect ( inspect:: Inspect ) ,
24
- Completion { shell : String } ,
17
+ Completion ( completion :: GetCompletion ) ,
25
18
}
26
19
27
20
impl Command {
@@ -32,25 +25,7 @@ impl Command {
32
25
Self :: Token ( cmd) => cmd. run ( ) . await ,
33
26
Self :: List ( cmd) => cmd. run ( ) . await ,
34
27
Self :: Inspect ( cmd) => cmd. run ( ) . await ,
35
- Self :: Completion { shell } => {
36
- let mut cmd = Cli :: command ( ) ;
37
- let bin_name = env:: args ( )
38
- . next ( )
39
- . and_then ( |path| {
40
- Path :: new ( & path)
41
- . file_stem ( )
42
- . map ( |name| name. to_string_lossy ( ) . into_owned ( ) )
43
- } )
44
- . unwrap ( ) ;
45
-
46
- match shell. as_str ( ) {
47
- "bash" => generate ( Bash , & mut cmd, & bin_name, & mut io:: stdout ( ) ) ,
48
- "zsh" => generate ( Zsh , & mut cmd, & bin_name, & mut io:: stdout ( ) ) ,
49
- "fish" => generate ( Fish , & mut cmd, & bin_name, & mut io:: stdout ( ) ) ,
50
- _ => eprintln ! ( "Unsupported shell: {}" , shell) ,
51
- }
52
- Ok ( ( ) )
53
- }
28
+ Self :: Completion ( cmd) => cmd. run ( ) . await ,
54
29
}
55
30
. map ( |( ) | ExitCode :: SUCCESS )
56
31
}
0 commit comments