From 7d9b685918db43a892e60b3c55849729e6e8f4e4 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Tue, 16 Jun 2026 00:57:04 +1000 Subject: [PATCH] fix: only fetch source once --- src/caelestia/utils/dots/source.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/caelestia/utils/dots/source.py b/src/caelestia/utils/dots/source.py index 23ae9c3..d4f79fd 100644 --- a/src/caelestia/utils/dots/source.py +++ b/src/caelestia/utils/dots/source.py @@ -11,6 +11,8 @@ class SourceError(Exception): class DotsSource: + _fetched_source: bool = False + def __init__(self) -> None: cfg = get_config().get("dots", {}) self.url = cfg.get("url", "https://github.com/caelestia-dots/caelestia.git") @@ -36,12 +38,17 @@ class DotsSource: if self.exists(): if self.current_url() == self.url: + if DotsSource._fetched_source: + return + self._git("fetch", "--prune", "origin", self.branch) + DotsSource._fetched_source = True return shutil.rmtree(dots_dir) dots_dir.parent.mkdir(parents=True, exist_ok=True) self._run("git", "clone", "--branch", self.branch, self.url, str(dots_dir)) + DotsSource._fetched_source = True def current_url(self) -> str: return self._git("remote", "get-url", "origin").strip()