about summary refs log tree commit diff stats
path: root/pkgs/by-name/ba/back/src/config/mod.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-03-09 00:12:01 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-03-09 13:44:47 +0100
commit0b9b4ce453664cadedc52f46934d4ffc9dde7fe4 (patch)
tree364d7dc8cb9ed4d161b1c88436373c975f861f5b /pkgs/by-name/ba/back/src/config/mod.rs
parentpkgs/back: Do not store repositories in config (diff)
downloadnixos-server-0b9b4ce453664cadedc52f46934d4ffc9dde7fe4.zip
pkgs/back/config: Also try to open a repo if a directory with `.git` exists
Diffstat (limited to '')
-rw-r--r--pkgs/by-name/ba/back/src/config/mod.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/pkgs/by-name/ba/back/src/config/mod.rs b/pkgs/by-name/ba/back/src/config/mod.rs
index 789c0b0..832d060 100644
--- a/pkgs/by-name/ba/back/src/config/mod.rs
+++ b/pkgs/by-name/ba/back/src/config/mod.rs
@@ -79,11 +79,17 @@ pub struct BackRepository {
 
 impl BackRepository {
     pub fn open(&self, scan_path: &Path) -> Result<ThreadSafeRepository, error::Error> {
-        let repo = ThreadSafeRepository::open(scan_path.join(&self.repo_path)).map_err(|err| {
-            Error::RepoOpen {
-                repository_path: self.repo_path.to_owned(),
-                error: Box::new(err),
+        let path = {
+            let base = scan_path.join(&self.repo_path);
+            if base.is_dir() {
+                base
+            } else {
+                PathBuf::from(base.display().to_string() + ".git")
             }
+        };
+        let repo = ThreadSafeRepository::open(path).map_err(|err| Error::RepoOpen {
+            repository_path: self.repo_path.to_owned(),
+            error: Box::new(err),
         })?;
         if is_git_bug(&repo.to_thread_local())? {
             Ok(repo)