Adapt for new StoreId API
When printing the storepath with the ID (when requested by the user), we have to ask the store for its path. This is a rather naive implementation which could be improved by only checking for a boolean in the last iteration and then use a prepared variable, rather than making the storepath part of the iterator. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
This commit is contained in:
parent
972cba7c31
commit
39d638daee
1 changed files with 12 additions and 8 deletions
|
@ -118,23 +118,27 @@ fn main() {
|
|||
}
|
||||
})
|
||||
.map(|id| if print_storepath {
|
||||
id
|
||||
(Some(rt.store().path()), id)
|
||||
} else {
|
||||
id.without_base()
|
||||
(None, id)
|
||||
});
|
||||
|
||||
let mut stdout = rt.stdout();
|
||||
trace!("Got output: {:?}", stdout);
|
||||
|
||||
iterator.for_each(|id| {
|
||||
let _ = rt.report_touched(&id).unwrap_or_exit(); // .map_err_trace_exit_unwrap();
|
||||
|
||||
iterator.for_each(|(storepath, id)| {
|
||||
rt.report_touched(&id).unwrap_or_exit();
|
||||
if !rt.output_is_pipe() {
|
||||
let id = id.to_str().map_err_trace_exit_unwrap();
|
||||
trace!("Writing to {:?}", stdout);
|
||||
|
||||
let result = if let Some(store) = storepath {
|
||||
writeln!(stdout, "{}/{}", store.display(), id)
|
||||
} else {
|
||||
writeln!(stdout, "{}", id)
|
||||
.to_exit_code()
|
||||
.unwrap_or_exit();
|
||||
};
|
||||
|
||||
result.to_exit_code().unwrap_or_exit();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue