summaryrefslogtreecommitdiffstats
path: root/bin/domain/imag-log/src/main.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2018-01-01 21:18:08 +0100
committerMatthias Beyer <mail@beyermatthias.de>2018-01-03 21:09:03 +0100
commita6fd525c0fb0c32dab32aae0efbbbd98b89b6636 (patch)
tree78a053f4d07d7ca302502fc50e507d726f2698be /bin/domain/imag-log/src/main.rs
parent3cf1fd0bafd3baac48f91366da1cf74d0258a453 (diff)
Add "show" functionality
Diffstat (limited to 'bin/domain/imag-log/src/main.rs')
-rw-r--r--bin/domain/imag-log/src/main.rs48
1 files changed, 45 insertions, 3 deletions
diff --git a/bin/domain/imag-log/src/main.rs b/bin/domain/imag-log/src/main.rs
index 7b31d971..99f917f8 100644
--- a/bin/domain/imag-log/src/main.rs
+++ b/bin/domain/imag-log/src/main.rs
@@ -72,8 +72,11 @@ fn main() {
},
}
} else {
- let diary_name = get_diary_name(&rt);
- let text = get_log_text(&rt);
+ let text = get_log_text(&rt);
+ let diary_name = rt.cli()
+ .value_of("diaryname")
+ .map(String::from)
+ .unwrap_or_else(|| get_diary_name(&rt));
debug!("Writing to '{}': {}", diary_name, text);
@@ -90,7 +93,46 @@ fn main() {
}
fn show(rt: &Runtime) {
- unimplemented!()
+ use libimagdiary::iter::DiaryEntryIterator;
+ use libimagdiary::entry::DiaryEntry;
+
+ let scmd = rt.cli().subcommand_matches("show").unwrap(); // safed by main()
+ let iters : Vec<DiaryEntryIterator> = match scmd.values_of("show-name") {
+ Some(values) => values
+ .map(|diary_name| Diary::entries(rt.store(), diary_name).map_err_trace_exit_unwrap(1))
+ .collect(),
+
+ None => if scmd.is_present("show-all") {
+ rt.store()
+ .diary_names()
+ .map_err_trace_exit_unwrap(1)
+ .map(|diary_name| {
+ let diary_name = diary_name.map_err_trace_exit_unwrap(1);
+ Diary::entries(rt.store(), &diary_name).map_err_trace_exit_unwrap(1)
+ })
+ .collect()
+ } else {
+ // showing default logs
+ vec![Diary::entries(rt.store(), &get_diary_name(rt)).map_err_trace_exit_unwrap(1)]
+ }
+ };
+
+ for iter in iters {
+ for element in iter {
+ let e = element.map_err_trace_exit_unwrap(1);
+ let id = e.diary_id().map_err_trace_exit_unwrap(1);
+ println!("{dname: >10} - {y: >4}-{m:0>2}-{d:0>2}T{H:0>2}:{M:0>2} - {text}",
+ dname = id.diary_name(),
+ y = id.year(),
+ m = id.month(),
+ d = id.day(),
+ H = id.hour(),
+ M = id.minute(),
+ text = e.get_content());
+ }
+ }
+
+ info!("Ready.");
}
fn get_diary_name(rt: &Runtime) -> String {