summaryrefslogtreecommitdiff
path: root/functions/ia-commit.fish
diff options
context:
space:
mode:
Diffstat (limited to 'functions/ia-commit.fish')
-rwxr-xr-xfunctions/ia-commit.fish27
1 files changed, 27 insertions, 0 deletions
diff --git a/functions/ia-commit.fish b/functions/ia-commit.fish
new file mode 100755
index 0000000..d47cca6
--- /dev/null
+++ b/functions/ia-commit.fish
@@ -0,0 +1,27 @@
+#!/bin/fish
+
+# Utility that will Prompt a LLM to make a commit message from a git diff.
+
+function _ask
+ echo "Is it correct ?! (y/n/e/1/r/)"
+ read response
+
+ if [ $response = y ]
+ git commit -F /tmp/prev-ia-commit-message
+ else if [ $response = 1 ]
+ git commit -m (cat /tmp/prev-ia-commit-message | head -n 1)
+ else if [ $response = e ]
+ $EDITOR /tmp/prev-ia-commit-message
+ cat /tmp/prev-ia-commit-message | head -n 1
+ _ask
+ else if [ $response = r ]
+ ia-commit
+ end
+end
+
+function ia-commit
+ echo -e "Write a professional git commit message based on the a diff below. \nDo not preface the commit with anything, use the present tense, return the full sentence, and use the conventional commits specification (<type in lowercase>: <subject>)\n\n-----\n\n$(git diff --staged)" | hailper -p b-code | tee /tmp/prev-ia-commit-message
+ _ask
+ rm /tmp/prev-ia-commit-message 2>/dev/null
+
+end