Fix: Use "retrieve" instead of "create" when importing

This fixes a bug where a re-import of the contacts directory failed
because some entries already exist.
With this change, one can import the contact directory after things
changed in there and the imag database is updated accordingly, but not
altered. So links and notes are persisting.

For completeness: before, the workflow was to
`cd $IMAG_RTP && git rm store/contacts -r && imag contact import /path/to/contacts`
which is of course not optimal.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
This commit is contained in:
Matthias Beyer 2018-10-07 10:56:56 +02:00
parent 3dba5c219b
commit e96fb53677

View file

@ -170,7 +170,7 @@ fn import(rt: &Runtime) {
if path.is_file() {
let _ = rt
.store()
.create_from_path(&path)
.retrieve_from_path(&path)
.map_err_trace_exit_unwrap(1);
} else if path.is_dir() {
for entry in WalkDir::new(path).min_depth(1).into_iter() {
@ -182,7 +182,7 @@ fn import(rt: &Runtime) {
let pb = PathBuf::from(entry.path());
let _ = rt
.store()
.create_from_path(&pb)
.retrieve_from_path(&pb)
.map_err_trace_exit_unwrap(1);
info!("Imported: {}", entry.path().to_str().unwrap_or("<non UTF-8 path>"));
} else {