diff --git a/homes/x86_64-linux/rafiq/default.nix b/homes/x86_64-linux/rafiq/default.nix index cb09374..f01cc2f 100644 --- a/homes/x86_64-linux/rafiq/default.nix +++ b/homes/x86_64-linux/rafiq/default.nix @@ -63,6 +63,7 @@ in pantheon.rebuild pantheon.deploy pantheon.edit + pantheon.commit inputs.nixspect.packages."x86_64-linux".nixspect ]; diff --git a/packages/commit/default.nix b/packages/commit/default.nix new file mode 100644 index 0000000..70930b9 --- /dev/null +++ b/packages/commit/default.nix @@ -0,0 +1,24 @@ +{ pkgs, ... }: +pkgs.writeShellScriptBin "commit" # bash + '' + PROMPT="Please generate a one-line commit message using." + GUIDELINES="1. Use conventional commit syntax, following the context." + NUM_ANCESTORS=0 + while [[ $# -gt 0 ]]; do + case "$1" in + --num-ancestors | -n) + NUM_ANCESTORS="$2" + shift 2 + ;; + *) + echo "Unrecognised argument: $1. Exiting..." + exit 1 + ;; + esac + done + CONTEXT=$(git --no-pager log -n 10) + DIFF=$(git --no-pager diff HEAD~$NUM_ANCESTORS) + RESPONSE=$(aichat "$PROMPT\nGuidelines: $GUIDELINES\nContext from git log: $CONTEXT\nDiff from git diff HEAD: $DIFF") + #TODO: revise commit message + git commit -am "$RESPONSE" + ''