aboutsummaryrefslogtreecommitdiffstats
path: root/atuin-client/src/database.rs
diff options
context:
space:
mode:
Diffstat (limited to 'atuin-client/src/database.rs')
-rw-r--r--atuin-client/src/database.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/atuin-client/src/database.rs b/atuin-client/src/database.rs
index 6d364dbe..c4a9ddc3 100644
--- a/atuin-client/src/database.rs
+++ b/atuin-client/src/database.rs
@@ -35,6 +35,7 @@ pub struct OptFilters {
pub after: Option<String>,
pub limit: Option<i64>,
pub offset: Option<i64>,
+ pub reverse: bool,
}
pub fn current_context() -> Context {
@@ -354,9 +355,7 @@ impl Database for Sqlite {
) -> Result<Vec<History>> {
let mut sql = SqlBuilder::select_from("history");
- sql.group_by("command")
- .having("max(timestamp)")
- .order_desc("timestamp");
+ sql.group_by("command").having("max(timestamp)");
if let Some(limit) = filter_options.limit {
sql.limit(limit);
@@ -366,6 +365,12 @@ impl Database for Sqlite {
sql.offset(offset);
}
+ if filter_options.reverse {
+ sql.order_asc("timestamp");
+ } else {
+ sql.order_desc("timestamp");
+ }
+
match filter {
FilterMode::Global => &mut sql,
FilterMode::Host => sql.and_where_eq("hostname", quote(&context.hostname)),