Fix: imag-log show should order by datetime
This commit is contained in:
parent
495ad62be6
commit
ee75d2309c
3 changed files with 32 additions and 27 deletions
|
@ -26,6 +26,7 @@ log = "0.3"
|
||||||
toml = "0.4"
|
toml = "0.4"
|
||||||
toml-query = "0.6"
|
toml-query = "0.6"
|
||||||
is-match = "0.1"
|
is-match = "0.1"
|
||||||
|
itertools = "0.7"
|
||||||
|
|
||||||
libimagstore = { version = "0.8.0", path = "../../../lib/core/libimagstore" }
|
libimagstore = { version = "0.8.0", path = "../../../lib/core/libimagstore" }
|
||||||
libimagrt = { version = "0.8.0", path = "../../../lib/core/libimagrt" }
|
libimagrt = { version = "0.8.0", path = "../../../lib/core/libimagrt" }
|
||||||
|
|
|
@ -37,6 +37,7 @@ extern crate clap;
|
||||||
#[macro_use] extern crate log;
|
#[macro_use] extern crate log;
|
||||||
extern crate toml;
|
extern crate toml;
|
||||||
extern crate toml_query;
|
extern crate toml_query;
|
||||||
|
extern crate itertools;
|
||||||
|
|
||||||
extern crate libimaglog;
|
extern crate libimaglog;
|
||||||
#[macro_use] extern crate libimagrt;
|
#[macro_use] extern crate libimagrt;
|
||||||
|
@ -51,6 +52,7 @@ use libimagrt::setup::generate_runtime_setup;
|
||||||
use libimagerror::trace::MapErrTrace;
|
use libimagerror::trace::MapErrTrace;
|
||||||
use libimagerror::io::ToExitCode;
|
use libimagerror::io::ToExitCode;
|
||||||
use libimagerror::exit::ExitUnwrap;
|
use libimagerror::exit::ExitUnwrap;
|
||||||
|
use libimagerror::iter::TraceIterator;
|
||||||
use libimagdiary::diary::Diary;
|
use libimagdiary::diary::Diary;
|
||||||
use libimaglog::log::Log;
|
use libimaglog::log::Log;
|
||||||
use libimaglog::error::LogError as LE;
|
use libimaglog::error::LogError as LE;
|
||||||
|
@ -60,6 +62,7 @@ mod ui;
|
||||||
use ui::build_ui;
|
use ui::build_ui;
|
||||||
|
|
||||||
use toml::Value;
|
use toml::Value;
|
||||||
|
use itertools::Itertools;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let version = make_imag_version!();
|
let version = make_imag_version!();
|
||||||
|
@ -126,33 +129,34 @@ fn show(rt: &Runtime) {
|
||||||
};
|
};
|
||||||
|
|
||||||
for iter in iters {
|
for iter in iters {
|
||||||
let _ = iter.into_get_iter(rt.store()).map(|element| {
|
let _ = iter
|
||||||
let e = element.map_err_trace_exit_unwrap(1);
|
.into_get_iter(rt.store())
|
||||||
|
.trace_unwrap_exit(1)
|
||||||
|
.filter_map(|opt| {
|
||||||
|
if opt.is_none() {
|
||||||
|
warn!("Failed to retrieve an entry from an existing store id");
|
||||||
|
}
|
||||||
|
|
||||||
if e.is_none() {
|
opt
|
||||||
warn!("Failed to retrieve an entry from an existing store id");
|
})
|
||||||
return Ok(())
|
.filter(|e| e.is_log().map_err_trace_exit_unwrap(1))
|
||||||
}
|
.map(|entry| (entry.diary_id().map_err_trace_exit_unwrap(1), entry))
|
||||||
let e = e.unwrap(); // safe with above check
|
.sorted_by_key(|&(ref id, _)| id.clone())
|
||||||
|
.into_iter()
|
||||||
if !e.is_log().map_err_trace_exit_unwrap(1) {
|
.map(|(id, entry)| {
|
||||||
return Ok(());
|
writeln!(rt.stdout(),
|
||||||
}
|
"{dname: >10} - {y: >4}-{m:0>2}-{d:0>2}T{H:0>2}:{M:0>2} - {text}",
|
||||||
|
dname = id.diary_name(),
|
||||||
let id = e.diary_id().map_err_trace_exit_unwrap(1);
|
y = id.year(),
|
||||||
writeln!(rt.stdout(),
|
m = id.month(),
|
||||||
"{dname: >10} - {y: >4}-{m:0>2}-{d:0>2}T{H:0>2}:{M:0>2} - {text}",
|
d = id.day(),
|
||||||
dname = id.diary_name(),
|
H = id.hour(),
|
||||||
y = id.year(),
|
M = id.minute(),
|
||||||
m = id.month(),
|
text = entry.get_content())
|
||||||
d = id.day(),
|
.to_exit_code()
|
||||||
H = id.hour(),
|
})
|
||||||
M = id.minute(),
|
.collect::<Result<Vec<()>, _>>()
|
||||||
text = e.get_content())
|
.unwrap_or_exit();
|
||||||
.to_exit_code()
|
|
||||||
})
|
|
||||||
.collect::<Result<Vec<()>, _>>()
|
|
||||||
.unwrap_or_exit();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ use error::ResultExt;
|
||||||
|
|
||||||
use module_path::ModuleEntryPath;
|
use module_path::ModuleEntryPath;
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq)]
|
||||||
pub struct DiaryId {
|
pub struct DiaryId {
|
||||||
name: String,
|
name: String,
|
||||||
year: i32,
|
year: i32,
|
||||||
|
|
Loading…
Reference in a new issue