diff --git a/penify_hook/main.py b/penify_hook/main.py index b8903d5..8395757 100644 --- a/penify_hook/main.py +++ b/penify_hook/main.py @@ -10,6 +10,8 @@ import urllib.parse from threading import Thread +from penify_hook.utils import find_git_parent + from .commit_analyzer import CommitDocGenHook from .folder_analyzer import FolderAnalyzerGenHook from .file_analyzer import FileAnalyzerGenHook @@ -287,6 +289,7 @@ def main(): print("Error: API token is required. Please provide it using -t option, PENIFY_API_TOKEN environment variable, or log in first.") sys.exit(1) open_terminal = args.terminal.lower() == "true" + args.git_folder_path = find_git_parent(args.git_folder_path) commit_code(args.git_folder_path, token, args.message, open_terminal) elif args.subcommand == "login": login() diff --git a/penify_hook/utils.py b/penify_hook/utils.py new file mode 100644 index 0000000..2263f1e --- /dev/null +++ b/penify_hook/utils.py @@ -0,0 +1,14 @@ +import os + +class GitRepoNotFoundError(Exception): + pass + +def find_git_parent(path): + current_dir = os.path.abspath(path) + + while current_dir != os.path.dirname(current_dir): # Traverse up to the root directory + if os.path.isdir(os.path.join(current_dir, ".git")): + return current_dir # Return the parent folder containing the .git directory + current_dir = os.path.dirname(current_dir) + + raise GitRepoNotFoundError(f"No Git repository found in the path or any of its parent directories: {path}") diff --git a/setup.py b/setup.py index 88725f6..b586b09 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name="penify-cli", - version="0.1.4", # Increment the version number + version="0.1.5", # Increment the version number packages=['penify_hook'], # Explicitly include the penify_hook package install_requires=[ "requests",