summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2019-12-23 13:38:52 +0100
committerMatthias Beyer <mail@beyermatthias.de>2019-12-23 13:38:52 +0100
commite12ee775ada7ca26d715501336ba7d1af665eea1 (patch)
tree494e06858d49e2f899b92823fed10b100d21ea24
parent1c5a81d5b024ef90a45345dc3dc13481afb7929a (diff)
parent02604ae58be17a9ab980b24b29192500c6658f9d (diff)
Merge branch 'replace-map-dbg-err' into master
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--bin/domain/imag-diary/Cargo.toml1
-rw-r--r--bin/domain/imag-diary/src/create.rs8
-rw-r--r--bin/domain/imag-diary/src/lib.rs1
-rw-r--r--bin/domain/imag-diary/src/list.rs4
-rw-r--r--bin/domain/imag-habit/Cargo.toml1
-rw-r--r--bin/domain/imag-habit/src/lib.rs5
-rw-r--r--lib/core/libimagrt/src/runtime.rs3
-rw-r--r--lib/core/libimagstore/src/store.rs6
-rw-r--r--lib/domain/libimaghabit/src/habit.rs16
-rw-r--r--lib/entry/libimagentrylink/src/storecheck.rs37
-rw-r--r--lib/entry/libimagentryurl/src/iter.rs10
-rw-r--r--lib/entry/libimagentryurl/src/linker.rs8
-rw-r--r--lib/etc/libimagutil/src/debug_option.rs28
-rw-r--r--lib/etc/libimagutil/src/debug_result.rs29
-rw-r--r--lib/etc/libimagutil/src/lib.rs2
15 files changed, 41 insertions, 118 deletions
diff --git a/bin/domain/imag-diary/Cargo.toml b/bin/domain/imag-diary/Cargo.toml
index 26432644..669c9d31 100644
--- a/bin/domain/imag-diary/Cargo.toml
+++ b/bin/domain/imag-diary/Cargo.toml
@@ -27,6 +27,7 @@ toml-query = "0.9.2"
itertools = "0.8.0"
failure = "0.1.5"
resiter = "0.4.0"
+option-inspect = "0.1.0"
libimagerror = { version = "0.10.0", path = "../../../lib/core/libimagerror" }
libimagstore = { version = "0.10.0", path = "../../../lib/core/libimagstore" }
diff --git a/bin/domain/imag-diary/src/create.rs b/bin/domain/imag-diary/src/create.rs
index c6c4687f..7bd574c0 100644
--- a/bin/domain/imag-diary/src/create.rs
+++ b/bin/domain/imag-diary/src/create.rs
@@ -25,11 +25,11 @@ use failure::Error;
use failure::ResultExt;
use failure::err_msg;
use failure::Fallible as Result;
+use option_inspect::*;
use libimagdiary::diary::Diary;
use libimagentryedit::edit::Edit;
use libimagrt::runtime::Runtime;
-use libimagutil::debug_option::DebugOption;
use libimagstore::store::FileLockEntry;
use libimagstore::store::Store;
@@ -103,7 +103,7 @@ fn create_id_from_clispec(create: &ArgMatches, timed_type: Timed) -> Result<Naiv
Timed::Minutely => {
let min = create
.value_of("minute")
- .map_dbg(|m| format!("minute = {:?}", m))
+ .inspect(|m| debug!("minute = {:?}", m))
.map(|s| {
FromStr::from_str(s)
.map_err(Error::from)
@@ -123,7 +123,7 @@ fn create_id_from_clispec(create: &ArgMatches, timed_type: Timed) -> Result<Naiv
Timed::Secondly => {
let min = create
.value_of("minute")
- .map_dbg(|m| format!("minute = {:?}", m))
+ .inspect(|m| debug!("minute = {:?}", m))
.map(|s| {
FromStr::from_str(s)
.map_err(Error::from)
@@ -135,7 +135,7 @@ fn create_id_from_clispec(create: &ArgMatches, timed_type: Timed) -> Result<Naiv
let sec = create
.value_of("second")
- .map_dbg(|s| format!("second = {:?}", s))
+ .inspect(|s| debug!("second = {:?}", s))
.map(|s| {
FromStr::from_str(s)
.map_err(Error::from)
diff --git a/bin/domain/imag-diary/src/lib.rs b/bin/domain/imag-diary/src/lib.rs
index f87cd927..9a924857 100644
--- a/bin/domain/imag-diary/src/lib.rs
+++ b/bin/domain/imag-diary/src/lib.rs
@@ -42,6 +42,7 @@ extern crate chrono;
extern crate toml;
extern crate toml_query;
extern crate itertools;
+extern crate option_inspect;
extern crate libimagdiary;
extern crate libimagentryedit;
diff --git a/bin/domain/imag-diary/src/list.rs b/bin/domain/imag-diary/src/list.rs
index 634b0ff7..0f1018aa 100644
--- a/bin/domain/imag-diary/src/list.rs
+++ b/bin/domain/imag-diary/src/list.rs
@@ -26,7 +26,6 @@ use resiter::AndThen;
use libimagdiary::diary::Diary;
use libimagrt::runtime::Runtime;
-use libimagutil::debug_result::*;
use libimagdiary::diaryid::DiaryId;
use libimagdiary::diaryid::FromStoreId;
use libimagstore::storeid::IntoStoreId;
@@ -37,8 +36,7 @@ pub fn list(rt: &Runtime) -> Result<()> {
let diaryname = get_diary_name(rt)
.ok_or_else(|| err_msg("No diary selected. Use either the configuration file or the commandline option"))?;
- let mut ids = Diary::entries(rt.store(), &diaryname)
- .map_dbg_str("Ok")?
+ let mut ids = Diary::entries(rt.store(), &diaryname)?
.and_then_ok(|id| DiaryId::from_storeid(&id))
.collect::<Result<Vec<_>>>()?;
diff --git a/bin/domain/imag-habit/Cargo.toml b/bin/domain/imag-habit/Cargo.toml
index 2e64c2fb..e4f96f7b 100644
--- a/bin/domain/imag-habit/Cargo.toml
+++ b/bin/domain/imag-habit/Cargo.toml
@@ -28,6 +28,7 @@ kairos = "0.3.0"
prettytable-rs = "0.8.0"
failure = "0.1.5"
resiter = "0.4.0"
+result-inspect = "0.1"
libimagerror = { version = "0.10.0", path = "../../../lib/core/libimagerror" }
libimagstore = { version = "0.10.0", path = "../../../lib/core/libimagstore" }
diff --git a/bin/domain/imag-habit/src/lib.rs b/bin/domain/imag-habit/src/lib.rs
index c8075dfe..e9ce9834 100644
--- a/bin/domain/imag-habit/src/lib.rs
+++ b/bin/domain/imag-habit/src/lib.rs
@@ -43,6 +43,7 @@ extern crate resiter;
extern crate chrono;
extern crate prettytable;
#[macro_use] extern crate failure;
+extern crate result_inspect;
extern crate libimaghabit;
extern crate libimagstore;
@@ -65,6 +66,7 @@ use resiter::Filter;
use resiter::IterInnerOkOrElse;
use clap::App;
use chrono::NaiveDate;
+use result_inspect::*;
use libimagrt::runtime::Runtime;
use libimagrt::application::ImagApplication;
@@ -74,7 +76,6 @@ use libimaghabit::habit::HabitTemplate;
use libimagstore::store::FileLockEntry;
use libimagstore::iter::get::StoreIdGetIteratorExtension;
use libimaginteraction::ask::ask_bool;
-use libimagutil::debug_result::DebugResult;
mod ui;
@@ -133,7 +134,7 @@ fn create(rt: &Runtime) -> Result<()> {
let parsedate = |d, pname| match kairos_parse(d)? {
Parsed::TimeType(tt) => tt.calculate()
- .map_dbg(|y| format!("TimeType yielded: '{:?}'", y))?
+ .inspect(|y| debug!("TimeType yielded: '{:?}'", y))?
.get_moment()
.ok_or_else(|| {
format_err!("Error: '{}' parameter does not yield a point in time", pname)
diff --git a/lib/core/libimagrt/src/runtime.rs b/lib/core/libimagrt/src/runtime.rs
index a1a27c6c..6791404e 100644
--- a/lib/core/libimagrt/src/runtime.rs
+++ b/lib/core/libimagrt/src/runtime.rs
@@ -44,7 +44,6 @@ use libimagerror::errors::ErrorMsg as EM;
use libimagerror::trace::*;
use libimagstore::store::Store;
use libimagstore::storeid::StoreId;
-use libimagutil::debug_result::DebugResult;
use crate::spec::CliSpec;
use atty;
@@ -384,8 +383,8 @@ impl<'a> Runtime<'a> {
})
.or_else(|_| env::var("EDITOR"))
.map_err(|_| Error::from(EM::IO))
- .map_dbg(|s| format!("Editing with '{}'", s))
.and_then(|s| {
+ debug!("Editing with '{}'", s);
let mut split = s.split_whitespace();
let command = split.next();
if command.is_none() {
diff --git a/lib/core/libimagstore/src/store.rs b/lib/core/libimagstore/src/store.rs
index f30b43a3..b7ffa35d 100644
--- a/lib/core/libimagstore/src/store.rs
+++ b/lib/core/libimagstore/src/store.rs
@@ -47,9 +47,6 @@ use crate::file_abstraction::FileAbstractionInstance;
use crate::file_abstraction::fs::FSFileAbstraction;
use crate::file_abstraction::inmemory::InMemoryFileAbstraction;
-use libimagutil::debug_result::*;
-
-
#[derive(Debug, PartialEq)]
enum StoreEntryStatus {
Present,
@@ -199,8 +196,7 @@ impl Store {
backend
.create_dir_all(&location)
- .context(format_err!("StorePathCreate: {}", location.display()))
- .map_dbg_err_str("Failed")?;
+ .context(format_err!("StorePathCreate: {}", location.display()))?;
} else if location.is_file() {
debug!("Store path exists as file");
return Err(format_err!("StorePathExists: {}", location.display()));
diff --git a/lib/domain/libimaghabit/src/habit.rs b/lib/domain/libimaghabit/src/habit.rs
index bcf0aa3f..68a85f32 100644
--- a/lib/domain/libimaghabit/src/habit.rs
+++ b/lib/domain/libimaghabit/src/habit.rs
@@ -270,7 +270,6 @@ pub mod builder {
use libimagstore::storeid::StoreId;
use libimagstore::store::FileLockEntry;
use libimagentryutil::isa::Is;
- use libimagutil::debug_result::DebugResult;
use failure::Error;
use failure::Fallible as Result;
@@ -321,17 +320,14 @@ pub mod builder {
format_err!("Habit builder missing: {}", s)
}
- let name = self.name
- .ok_or_else(|| mkerr("name"))
- .map_dbg_str("Success: Name present")?;
+ let name = self.name.ok_or_else(|| mkerr("name"))?;
+ debug!("Success: Name present");
- let dateobj = self.basedate
- .ok_or_else(|| mkerr("date"))
- .map_dbg_str("Success: Date present")?;
+ let dateobj = self.basedate.ok_or_else(|| mkerr("date"))?;
+ debug!("Success: Date present");
- let recur : String = self.recurspec
- .ok_or_else(|| mkerr("recurspec"))
- .map_dbg_str("Success: Recurr spec present")?;
+ let recur : String = self.recurspec.ok_or_else(|| mkerr("recurspec"))?;
+ debug!("Success: Recurr spec present");
if let Some(until) = self.untildate {
debug!("Success: Until-Date present");
diff --git a/lib/entry/libimagentrylink/src/storecheck.rs b/lib/entry/libimagentrylink/src/storecheck.rs
index eab8eccf..f78d52cc 100644
--- a/lib/entry/libimagentrylink/src/storecheck.rs
+++ b/lib/entry/libimagentrylink/src/storecheck.rs
@@ -21,7 +21,6 @@ use std::collections::HashMap;
use libimagstore::store::Store;
use libimagstore::storeid::StoreId;
-use libimagutil::debug_result::DebugResult;
use failure::ResultExt;
use failure::Fallible as Result;
@@ -145,29 +144,19 @@ impl StoreLinkConsistentExt for Store {
Ok(())
};
- aggregate_link_network(&self)
- .map_dbg_str("Aggregated")
- .map_dbg(|nw| {
- let mut s = String::new();
- for (k, v) in nw {
- s.push_str(&format!("{}\n in: {:?}\n out: {:?}", k, v.incoming, v.outgoing));
- }
- s
- })
- .and_then(|nw| {
- all_collected_storeids_exist(&nw)
- .map(|_| nw)
- .context(err_msg("Link handling error"))
- .map_err(Error::from)
- })
- .and_then(|nw| {
- for (id, linking) in nw.iter() {
- incoming_links_exists_as_outgoing_links(id, linking, &nw)?;
- outgoing_links_exist_as_incoming_links(id, linking, &nw)?;
- }
- Ok(())
- })
- .map(|_| ())
+ let nw = aggregate_link_network(&self)?;
+
+ for (k, v) in nw.iter() {
+ debug!("{}\n in: {:?}\n out: {:?}", k, v.incoming, v.outgoing);
+ }
+
+ all_collected_storeids_exist(&nw).context("Link handling error")?;
+
+ for (id, linking) in nw.iter() {
+ incoming_links_exists_as_outgoing_links(id, linking, &nw)?;
+ outgoing_links_exist_as_incoming_links(id, linking, &nw)?;
+ }
+ Ok(())
}
}
diff --git a/lib/entry/libimagentryurl/src/iter.rs b/lib/entry/libimagentryurl/src/iter.rs
index 4a22a6b1..f899cb38 100644
--- a/lib/entry/libimagentryurl/src/iter.rs
+++ b/lib/entry/libimagentryurl/src/iter.rs
@@ -32,9 +32,10 @@
use libimagentrylink::link::Link;
use libimagentrylink::iter::LinkIter;
use libimagstore::store::Store;
-use libimagutil::debug_result::DebugResult;
use failure::Fallible as Result;
+use failure::ResultExt;
+use failure::Error;
use url::Url;
/// Helper for building `OnlyUrlIter` and `NoUrlIter`
@@ -170,14 +171,15 @@ impl<'a> Iterator for UrlIter<'a> {
debug!("Retrieving entry for id: '{:?}'", id);
self.1
.retrieve(id.clone())
- .map_dbg_err(|_| format!("Retrieving entry for id: '{:?}' failed", id))
+ .with_context(|e| format!("Retrieving entry for id: '{:?}' failed: {}", id, e))
.map_err(From::from)
.and_then(|f| {
debug!("Store::retrieve({:?}) succeeded", id);
debug!("getting uri link from file now");
f.get_url()
- .map_dbg_str("Error happened while getting link URI from FLE")
- .map_dbg_err(|e| format!("URL -> Err = {:?}", e))
+ .context("Error happened while getting link URI from FLE")
+ .with_context(|e| format!("URL -> Err = {:?}", e))
+ .map_err(Error::from)
})
});
diff --git a/lib/entry/libimagentryurl/src/linker.rs b/lib/entry/libimagentryurl/src/linker.rs
index 175ffcea..b38463e3 100644
--- a/lib/entry/libimagentryurl/src/linker.rs
+++ b/lib/entry/libimagentryurl/src/linker.rs
@@ -20,10 +20,10 @@
use libimagstore::storeid::StoreId;
use libimagstore::store::Store;
use libimagstore::store::Entry;
-use libimagutil::debug_result::DebugResult;
use libimagentrylink::linkable::Linkable;
use failure::Fallible as Result;
+use failure::ResultExt;
use url::Url;
use sha1::{Sha1, Digest};
use hex;
@@ -93,7 +93,7 @@ impl UrlLinker for Entry {
links.into_iter().map(|link| {
let hash = hex::encode(Sha1::digest(&link.as_str().as_bytes()));
let file_id = crate::module_path::new_id(hash.clone())
- .map_dbg_err(|_| format!("Failed to build StoreId for this hash '{:?}'", hash))?;
+ .with_context(|e| format!("Failed to build StoreId for this hash '{:?}': {}", hash, e))?;
debug!("Link = '{:?}'", link);
debug!("Hash = '{:?}'", hash);
@@ -105,9 +105,7 @@ impl UrlLinker for Entry {
// exist
let mut file = store
.retrieve(file_id.clone())
- .map_dbg_err(|_| {
- format!("Failed to create or retrieve an file for this link '{:?}'", link)
- })?;
+ .with_context(|e| format!("Failed to create or retrieve an file for this link '{:?}': {}", link, e))?;
debug!("Generating header content!");
file.set_url(link)?;
diff --git a/lib/etc/libimagutil/src/debug_option.rs b/lib/etc/libimagutil/src/debug_option.rs
deleted file mode 100644
index 4f27279a..00000000
--- a/lib/etc/libimagutil/src/debug_option.rs
+++ /dev/null
@@ -1,28 +0,0 @@
-//
-// imag - the personal information management suite for the commandline
-// Copyright (C) 2015-2019 Matthias Beyer <mail@beyermatthias.de> and contributors
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; version
-// 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-//
-
-// Generates a extension for the `Option<T>`, named `DebugOption` which has functionality to
-// print `T` via `debug!()`.
-generate_option_logging_extension!(
- DebugOption,
- map_dbg,
- map_dbg_str,
- |s| { debug!("{}", s); }
-);
-
diff --git a/lib/etc/libimagutil/src/debug_result.rs b/lib/etc/libimagutil/src/debug_result.rs
deleted file mode 100644
index dad06723..00000000
--- a/lib/etc/libimagutil/src/debug_result.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// imag - the personal information management suite for the commandline
-// Copyright (C) 2015-2019 Matthias Beyer <mail@beyermatthias.de> and contributors
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; version
-// 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-//
-
-// Generates a extension for the `Result<T, E>`, named `DebugResult` which has functionality to
-// print either `T` or `E` via `debug!()`.
-generate_result_logging_extension!(
- DebugResult,
- map_dbg,
- map_dbg_str,
- map_dbg_err,
- map_dbg_err_str,
- |s| { debug!("{}", s); }
-);
diff --git a/lib/etc/libimagutil/src/lib.rs b/lib/etc/libimagutil/src/lib.rs
index 08de2392..77ee632b 100644
--- a/lib/etc/libimagutil/src/lib.rs
+++ b/lib/etc/libimagutil/src/lib.rs
@@ -47,8 +47,6 @@ extern crate chrono;
#[macro_use] mod log_option;
pub mod cli_validators;
pub mod date;
-pub mod debug_result;
-pub mod debug_option;
pub mod edit;
pub mod info_result;
pub mod info_option;