aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMelody Horn <melody@boringcactus.com>2021-04-22 20:56:59 -0600
committerMelody Horn <melody@boringcactus.com>2021-04-22 20:56:59 -0600
commit66a0f6cb6592eedc6c357f3bb02840dc93e7d05d (patch)
treea82aa63d30b4f13312021ccf6ee745c13100dd0b
parent0ff740af7ea469270ac8f90782e291ce53050f1f (diff)
downloadgityeet-66a0f6cb6592eedc6c357f3bb02840dc93e7d05d.tar.gz
gityeet-66a0f6cb6592eedc6c357f3bb02840dc93e7d05d.zip
only recurse into actual directories
-rw-r--r--src/state.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/state.rs b/src/state.rs
index ed7f196..9a2488b 100644
--- a/src/state.rs
+++ b/src/state.rs
@@ -1,4 +1,4 @@
-use std::fs::read_dir;
+use std::fs::{metadata, read_dir};
use std::io;
use std::path::{Path, PathBuf};
@@ -26,7 +26,10 @@ fn find_repos_in(dir: impl AsRef<Path>) -> Result<Vec<Repository>> {
match Repository::open_bare(subdir.path()) {
Ok(repo) => result.push(repo),
Err(err) if err.class() == git2::ErrorClass::Repository && err.code() == git2::ErrorCode::NotFound => {
- result.extend(find_repos_in(subdir.path())?)
+ let metadata = metadata(subdir.path())?;
+ if metadata.is_dir() {
+ result.extend(find_repos_in(subdir.path())?)
+ }
}
// TODO handle in a non-god-awful way
Err(err) => panic!("{}", err),