diff --git a/src/client/mysql_admutils_compatibility/mysql_dbadm.rs b/src/client/mysql_admutils_compatibility/mysql_dbadm.rs index 214e463..73b34f4 100644 --- a/src/client/mysql_admutils_compatibility/mysql_dbadm.rs +++ b/src/client/mysql_admutils_compatibility/mysql_dbadm.rs @@ -1,4 +1,5 @@ use clap::Parser; +use clap_complete::ArgValueCompleter; use futures_util::{SinkExt, StreamExt}; use std::os::unix::net::UnixStream as StdUnixStream; use std::path::PathBuf; @@ -16,13 +17,10 @@ use crate::{ }, }, core::{ - bootstrap::bootstrap_server_connection_and_drop_privileges, - database_privileges::DatabasePrivilegeRow, - protocol::{ + bootstrap::bootstrap_server_connection_and_drop_privileges, completion::mysql_database_completer, database_privileges::DatabasePrivilegeRow, protocol::{ ClientToServerMessageStream, GetDatabasesPrivilegeDataError, Request, Response, create_client_to_server_message_stream, - }, - types::MySQLDatabase, + }, types::MySQLDatabase }, }; @@ -128,20 +126,21 @@ pub struct CreateArgs { #[derive(Parser)] pub struct DatabaseDropArgs { /// The name of the DATABASE(s) to drop. - #[arg(num_args = 1..)] + #[arg(num_args = 1.., add = ArgValueCompleter::new(mysql_database_completer))] name: Vec, } #[derive(Parser)] pub struct DatabaseShowArgs { /// The name of the DATABASE(s) to show. - #[arg(num_args = 0..)] + #[arg(num_args = 0.., add = ArgValueCompleter::new(mysql_database_completer))] name: Vec, } #[derive(Parser)] pub struct EditPermArgs { /// The name of the DATABASE to edit permissions for. + #[arg(add = ArgValueCompleter::new(mysql_database_completer))] pub database: MySQLDatabase, } diff --git a/src/client/mysql_admutils_compatibility/mysql_useradm.rs b/src/client/mysql_admutils_compatibility/mysql_useradm.rs index 425ac84..f332603 100644 --- a/src/client/mysql_admutils_compatibility/mysql_useradm.rs +++ b/src/client/mysql_admutils_compatibility/mysql_useradm.rs @@ -1,4 +1,5 @@ use clap::Parser; +use clap_complete::ArgValueCompleter; use futures_util::{SinkExt, StreamExt}; use std::path::PathBuf; @@ -16,11 +17,9 @@ use crate::{ }, }, core::{ - bootstrap::bootstrap_server_connection_and_drop_privileges, - protocol::{ + bootstrap::bootstrap_server_connection_and_drop_privileges, completion::mysql_user_completer, protocol::{ ClientToServerMessageStream, Request, Response, create_client_to_server_message_stream, - }, - types::MySQLUser, + }, types::MySQLUser }, server::sql::user_operations::DatabaseUser, }; @@ -91,21 +90,21 @@ pub struct CreateArgs { #[derive(Parser)] pub struct DeleteArgs { /// The name of the USER(s) to delete. - #[arg(num_args = 1..)] + #[arg(num_args = 1.., add = ArgValueCompleter::new(mysql_user_completer))] name: Vec, } #[derive(Parser)] pub struct PasswdArgs { /// The name of the USER(s) to change the password for. - #[arg(num_args = 1..)] + #[arg(num_args = 1.., add = ArgValueCompleter::new(mysql_user_completer))] name: Vec, } #[derive(Parser)] pub struct ShowArgs { /// The name of the USER(s) to show. - #[arg(num_args = 0..)] + #[arg(num_args = 0.., add = ArgValueCompleter::new(mysql_user_completer))] name: Vec, }