Skip to content

Commit 221bce4

Browse files
committed
Improve gix clean messaging
1 parent 95d10ee commit 221bce4

File tree

1 file changed

+38
-18
lines changed

1 file changed

+38
-18
lines changed

gitoxide-core/src/repository/clean.rs

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -230,24 +230,36 @@ pub(crate) mod function {
230230
}
231231
if !execute {
232232
let mut messages = Vec::new();
233-
messages.extend(
234-
(skipped_directories > 0).then(|| format!("Skipped {skipped_directories} directories - show with -d")),
235-
);
236-
messages.extend(
237-
(skipped_repositories > 0)
238-
.then(|| format!("Skipped {skipped_repositories} repositories - show with -r")),
239-
);
240-
messages.extend(
241-
(skipped_ignored > 0).then(|| format!("Skipped {skipped_ignored} expendable entries - show with -x")),
242-
);
243-
messages.extend(
244-
(skipped_precious > 0).then(|| format!("Skipped {skipped_precious} precious entries - show with -p")),
245-
);
246-
messages.extend(
247-
(pruned_entries > 0 && has_patterns).then(|| {
248-
format!("try to adjust your pathspec to reveal some of the {pruned_entries} pruned entries")
249-
}),
250-
);
233+
messages.extend((skipped_directories > 0).then(|| {
234+
format!(
235+
"Skipped {skipped_directories} {directories} - show with -d",
236+
directories = plural("directory", "directories", skipped_directories)
237+
)
238+
}));
239+
messages.extend((skipped_repositories > 0).then(|| {
240+
format!(
241+
"Skipped {skipped_repositories} {repositories} - show with -r",
242+
repositories = plural("repository", "repositories", skipped_repositories)
243+
)
244+
}));
245+
messages.extend((skipped_ignored > 0).then(|| {
246+
format!(
247+
"Skipped {skipped_ignored} expendable {entries} - show with -x",
248+
entries = plural("entry", "entries", skipped_ignored)
249+
)
250+
}));
251+
messages.extend((skipped_precious > 0).then(|| {
252+
format!(
253+
"Skipped {skipped_precious} precious {entries} - show with -p",
254+
entries = plural("entry", "entries", skipped_precious)
255+
)
256+
}));
257+
messages.extend((pruned_entries > 0 && has_patterns).then(|| {
258+
format!(
259+
"try to adjust your pathspec to reveal some of the {pruned_entries} pruned {entries}",
260+
entries = plural("entry", "entries", pruned_entries)
261+
)
262+
}));
251263
let make_msg = || -> String {
252264
if messages.is_empty() {
253265
return String::new();
@@ -295,6 +307,14 @@ pub(crate) mod function {
295307
Ok(())
296308
}
297309

310+
fn plural<'a>(one: &'a str, many: &'a str, number: usize) -> &'a str {
311+
if number == 1 {
312+
one
313+
} else {
314+
many
315+
}
316+
}
317+
298318
#[derive(Default)]
299319
struct InterruptableCollect {
300320
inner: gix::dir::walk::delegate::Collect,

0 commit comments

Comments
 (0)