11import subprocess
2+ import sys
23from ollama import chat
34from ollama import ChatResponse
45
@@ -64,7 +65,6 @@ def get_commit_messages(diff, files):
6465 return ""
6566
6667def 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
8989def 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
105113if __name__ == "__main__" :
106114 main ()
0 commit comments