client/various: sort output
Build and test / check (push) Successful in 1m54s
Build and test / check-license (push) Successful in 2m11s
Build and test / build (push) Successful in 2m47s
Build and test / test (push) Successful in 3m13s
Build and test / docs (push) Successful in 6m12s

This commit is contained in:
2026-04-28 17:58:17 +09:00
parent 40c7a935b3
commit 4132fb58e8
4 changed files with 30 additions and 21 deletions
+6 -1
View File
@@ -8,6 +8,7 @@ use clap::{Args, Parser};
use clap_complete::ArgValueCompleter;
use dialoguer::{Confirm, Editor};
use futures_util::SinkExt;
use itertools::Itertools;
use nix::unistd::{User, getuid};
use tokio_stream::StreamExt;
@@ -203,9 +204,13 @@ pub async fn edit_database_privileges(
}
})
.flatten()
.sorted_by_key(|row| (row.db.clone(), row.user.clone()))
.collect::<Vec<_>>(),
Some(Ok(Response::ListAllPrivileges(privilege_rows))) => match privilege_rows {
Ok(list) => list,
Ok(list) => list
.into_iter()
.sorted_by_key(|row| (row.db.clone(), row.user.clone()))
.collect(),
Err(err) => {
server_connection.send(Request::Exit).await?;
return Err(anyhow::anyhow!(err.to_error_message())
+1 -1
View File
@@ -61,7 +61,7 @@ pub fn print_list_databases_output_status(
"Size"
}
]);
for db in final_database_list {
for db in final_database_list.iter().sorted_by_key(|db| &db.database) {
table.add_row(row![
db.database,
db.tables.join("\n"),
+21 -18
View File
@@ -64,25 +64,28 @@ pub fn print_list_privileges_output_status(output: &ListPrivilegesResponse, long
.collect(),
));
for (_database, rows) in final_privs_map {
for row in &rows {
table.add_row(row![
row.db,
row.user,
c->yn(row.select_priv),
c->yn(row.insert_priv),
c->yn(row.update_priv),
c->yn(row.delete_priv),
c->yn(row.create_priv),
c->yn(row.drop_priv),
c->yn(row.alter_priv),
c->yn(row.index_priv),
c->yn(row.create_tmp_table_priv),
c->yn(row.lock_tables_priv),
c->yn(row.references_priv),
]);
}
for row in final_privs_map
.values()
.flatten()
.sorted_by_key(|row| (&row.db, &row.user))
{
table.add_row(row![
row.db,
row.user,
c->yn(row.select_priv),
c->yn(row.insert_priv),
c->yn(row.update_priv),
c->yn(row.delete_priv),
c->yn(row.create_priv),
c->yn(row.drop_priv),
c->yn(row.alter_priv),
c->yn(row.index_priv),
c->yn(row.create_tmp_table_priv),
c->yn(row.lock_tables_priv),
c->yn(row.references_priv),
]);
}
// }
table.printstd();
}
+2 -1
View File
@@ -1,5 +1,6 @@
use std::collections::BTreeMap;
use itertools::Itertools;
use prettytable::Table;
use serde::{Deserialize, Serialize};
use serde_json::json;
@@ -51,7 +52,7 @@ pub fn print_list_users_output_status(output: &ListUsersResponse) {
"Locked",
"Databases where user has privileges"
]);
for user in final_user_list {
for user in final_user_list.iter().sorted_by_key(|user| &user.user) {
table.add_row(row![
user.user,
user.has_password,