@@ -57,6 +57,8 @@ enum SpinApp {
57
57
Plugin ( PluginCommands ) ,
58
58
#[ clap( subcommand, hide = true ) ]
59
59
Trigger ( TriggerCommands ) ,
60
+ #[ clap( hide = true , name = "generate-bash-completions" ) ]
61
+ GenerateBashCompletions ,
60
62
#[ clap( external_subcommand) ]
61
63
External ( Vec < String > ) ,
62
64
}
@@ -82,6 +84,10 @@ impl SpinApp {
82
84
Self :: Trigger ( TriggerCommands :: Redis ( cmd) ) => cmd. run ( ) . await ,
83
85
Self :: Login ( cmd) => cmd. run ( ) . await ,
84
86
Self :: Plugin ( cmd) => cmd. run ( ) . await ,
87
+ Self :: GenerateBashCompletions => {
88
+ let mut cmd: clap:: Command = SpinApp :: into_app ( ) ;
89
+ Ok ( print_completions ( clap_complete:: Shell :: Bash , & mut cmd) )
90
+ } ,
85
91
Self :: External ( cmd) => execute_external_subcommand ( cmd, SpinApp :: command ( ) ) . await ,
86
92
}
87
93
}
@@ -96,3 +102,7 @@ fn build_info() -> String {
96
102
env!( "VERGEN_GIT_COMMIT_DATE" )
97
103
)
98
104
}
105
+
106
+ fn print_completions < G : clap_complete:: Generator > ( gen : G , cmd : & mut clap:: Command ) {
107
+ clap_complete:: generate ( gen, cmd, cmd. get_name ( ) . to_string ( ) , & mut std:: io:: stdout ( ) )
108
+ }
0 commit comments