Skip to content

Commit 79f5b1e

Browse files
committed
add git module
1 parent cac2454 commit 79f5b1e

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from .git import get_git_root
2+
3+
__all__ = ['get_git_root']
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import subprocess
2+
from pathlib import Path
3+
import sys
4+
5+
from ..logging import Logger
6+
7+
def get_git_root(logger=None):
8+
"""Get the root directory of the current Git repository.
9+
10+
Args:
11+
logger: Optional logger instance. If not provided, will use module's logger.
12+
"""
13+
log = logger or Logger.get_logger("gardenlinux.git")
14+
15+
try:
16+
root_dir = subprocess.check_output(["git", "rev-parse", "--show-toplevel"], text=True).strip()
17+
log.debug(f"Git root directory: {root_dir}")
18+
return Path(root_dir)
19+
except subprocess.CalledProcessError as e:
20+
log.error("Not a git repository or unable to determine root directory.")
21+
log.debug(f"Git command failed with: {e}")
22+
sys.exit(1)

0 commit comments

Comments
 (0)