1
0
Fork 0
mirror of https://github.com/icewind1991/zox synced 2026-06-03 18:34:07 +02:00

print history when no arguments are provided

This commit is contained in:
Robin Appelman 2020-03-03 22:58:28 +01:00
commit 982966d023

View file

@ -1,6 +1,7 @@
use main_error::MainError; use main_error::MainError;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::cmp::Ordering; use std::cmp::Ordering;
use std::io::{stdout, Write};
use std::time::{SystemTime, UNIX_EPOCH}; use std::time::{SystemTime, UNIX_EPOCH};
#[derive(Debug, Deserialize, Serialize)] #[derive(Debug, Deserialize, Serialize)]
@ -150,6 +151,22 @@ fn main() -> Result<(), MainError> {
return Ok(()); return Ok(());
} }
if args.filter.is_empty() {
let mut history: Vec<_> = history_result
.map(|history| history.collect())
.unwrap_or_default();
history.sort_by(|a, b| b.rank.partial_cmp(&a.rank).unwrap());
let stdout = stdout();
let mut handle = stdout.lock();
for item in history {
let _ = writeln!(&mut handle, "{}|{}|{}", item.path, item.rank, item.time);
}
return Ok(());
}
if let Ok(history) = history_result { if let Ok(history) = history_result {
let matches = history.filter(|item| item.matches(&args.filter)); let matches = history.filter(|item| item.matches(&args.filter));