Skip to content

Commit 81afefc

Browse files
committed
feat: Add support for single file commit
1 parent 38eb8fc commit 81afefc

1 file changed

Lines changed: 15 additions & 7 deletions

File tree

auto_commit.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import subprocess
2+
import sys
23
from ollama import chat
34
from ollama import ChatResponse
45

@@ -64,7 +65,6 @@ def get_commit_messages(diff, files):
6465
return ""
6566

6667
def diff_single_file(file):
67-
print(f"{file}")
6868
commit_messages = []
6969
unstaged_diff = get_diff_for_file(file, staged=False).strip()
7070
staged_diff = get_diff_for_file(file, staged=True).strip()
@@ -87,20 +87,28 @@ def git_commit_everything(message):
8787
subprocess.run(['git', 'commit', '-m', message], check=True)
8888

8989
def main():
90+
commit_single_file = False
91+
if len(sys.argv) > 1 and sys.argv[1] == "single_file":
92+
commit_single_file = True
93+
9094
files = get_changed_files()
9195
if not files:
9296
print("No changes detected.")
9397
return
9498

9599
all_commit_messages = []
96100
for file in files:
101+
print(f"{file}")
97102
commit_messages = diff_single_file(file)
98-
all_commit_messages.extend(commit_messages)
99-
100-
print("Suggested commit messages:")
101-
single_message = "\n".join(all_commit_messages)
102-
print(single_message)
103-
git_commit_everything(single_message)
103+
commit_messages_text = "\n".join(commit_messages)
104+
print(f"{commit_messages_text}")
105+
if (commit_single_file):
106+
git_commit_everything(commit_messages_text)
107+
else:
108+
all_commit_messages.extend(commit_messages)
109+
if all_commit_messages:
110+
single_message = "\n".join(all_commit_messages)
111+
git_commit_everything(single_message)
104112

105113
if __name__ == "__main__":
106114
main()

0 commit comments

Comments
 (0)