Remove calls to trace_error_exit()

This commit is contained in:
Matthias Beyer 2018-02-11 19:39:32 +01:00
parent 3845399fb8
commit 50b0ffa6ae
2 changed files with 20 additions and 15 deletions

View file

@ -56,7 +56,7 @@ use libimagentrylink::external::ExternalLinker;
use libimagentrylink::internal::InternalLinker; use libimagentrylink::internal::InternalLinker;
use libimagentrylink::internal::store_check::StoreLinkConsistentExt; use libimagentrylink::internal::store_check::StoreLinkConsistentExt;
use libimagentrylink::error::LinkError as LE; use libimagentrylink::error::LinkError as LE;
use libimagerror::trace::{MapErrTrace, trace_error, trace_error_exit}; use libimagerror::trace::{MapErrTrace, trace_error};
use libimagrt::runtime::Runtime; use libimagrt::runtime::Runtime;
use libimagrt::setup::generate_runtime_setup; use libimagrt::setup::generate_runtime_setup;
use libimagstore::error::StoreError; use libimagstore::error::StoreError;
@ -120,16 +120,19 @@ fn get_entry_by_name<'a>(rt: &'a Runtime, name: &str) -> Result<Option<FileLockE
fn link_from_to<'a, I>(rt: &'a Runtime, from: &'a str, to: I) fn link_from_to<'a, I>(rt: &'a Runtime, from: &'a str, to: I)
where I: Iterator<Item = &'a str> where I: Iterator<Item = &'a str>
{ {
let mut from_entry = match get_entry_by_name(rt, from) { let mut from_entry = match get_entry_by_name(rt, from).map_err_trace_exit_unwrap(1) {
Ok(Some(e)) => e, Some(e) => e,
Ok(None) => warn_exit("No 'from' entry", 1), None => warn_exit("No 'from' entry", 1),
Err(e) => trace_error_exit(&e, 1),
}; };
for entry in to { for entry in to {
if PathBuf::from(entry).exists() { if PathBuf::from(entry).exists() {
debug!("Linking externally: {:?} -> {:?}", from, entry); debug!("Linking externally: {:?} -> {:?}", from, entry);
let url = Url::parse(entry).map_err_trace_exit_unwrap(1); let url = Url::parse(entry).unwrap_or_else(|e| {
error!("Error parsing URL: {:?}", e);
::std::process::exit(1);
});
let _ = from_entry let _ = from_entry
.add_external_link(rt.store(), url) .add_external_link(rt.store(), url)
.map_err_trace_exit_unwrap(1); .map_err_trace_exit_unwrap(1);
@ -144,13 +147,12 @@ fn link_from_to<'a, I>(rt: &'a Runtime, from: &'a str, to: I)
::std::process::exit(1) ::std::process::exit(1)
} }
let mut to_entry = match rt.store().get(entr_id) { let mut to_entry = match rt.store().get(entr_id).map_err_trace_exit_unwrap(1) {
Ok(Some(e)) => e, Some(e) => e,
Ok(None) => { None => {
warn!("No 'to' entry: {}", entry); warn!("No 'to' entry: {}", entry);
::std::process::exit(1) ::std::process::exit(1)
}, },
Err(e) => trace_error_exit(&e, 1),
}; };
let _ = from_entry let _ = from_entry
.add_internal_link(&mut to_entry) .add_internal_link(&mut to_entry)
@ -195,15 +197,18 @@ fn remove_linking(rt: &Runtime) {
match entry { match entry {
Err(e) => trace_error(&e), Err(e) => trace_error(&e),
Ok(Some(mut to_entry)) => { Ok(Some(mut to_entry)) => {
if let Err(e) = to_entry.remove_internal_link(&mut from) { let _ = to_entry
trace_error_exit(&e, 1); .remove_internal_link(&mut from)
} .map_err_trace_exit_unwrap(1);
}, },
Ok(None) => { Ok(None) => {
// looks like this is not an entry, but a filesystem URI and therefor an // looks like this is not an entry, but a filesystem URI and therefor an
// external link...? // external link...?
if PathBuf::from(value).is_file() { if PathBuf::from(value).is_file() {
let url = Url::parse(value).map_err_trace_exit_unwrap(1); let url = Url::parse(value).unwrap_or_else(|e| {
error!("Error parsing URL: {:?}", e);
::std::process::exit(1);
});
from.remove_external_link(rt.store(), url).map_err_trace_exit_unwrap(1); from.remove_external_link(rt.store(), url).map_err_trace_exit_unwrap(1);
info!("Ok: {}", value); info!("Ok: {}", value);
} else { } else {

View file

@ -1,4 +1,4 @@
//
// imag - the personal information management suite for the commandline // imag - the personal information management suite for the commandline
// Copyright (C) 2015-2018 Matthias Beyer <mail@beyermatthias.de> and contributors // Copyright (C) 2015-2018 Matthias Beyer <mail@beyermatthias.de> and contributors
// //