make commit ask for a commit message.

This commit is contained in:
2026-08-12 22:44:04 +02:00
parent 5e7ee0cf22
commit f4b1c7631f
+14 -1
View File
@@ -15,6 +15,8 @@
git-commit
git-pull
git-push
git-log
git-grep
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -33,6 +35,11 @@
)
)
(define (git-prompt p)
(display p)
(flush-output)
(read-line))
(define (add-porcelain args info . f)
(let ((m (has-git-arg? args #px"^[-][-]porcelain([=](.*))?"))
(g (if (null? f) (λ (x) x) (car f)))
@@ -89,7 +96,13 @@
(def-cmd git-add cmd-git-add 'add)
(def-cmd git-commit cmd-git-commit 'commit
(λ (args info) (check-git-args 'commit args '((-m 1 "A commit message is mandatory"))))
(λ (args info)
(with-handlers ([exn:fail? (λ (e)
(let ((msg (string-trim (git-prompt "Commit message: >"))))
(if (string=? msg "")
(raise "A commit message is mandatory")
(cons '-m (cons msg args)))))])
(check-git-args 'commit args '((-m 1 "A commit message is mandatory")))))
(λ (cmd exit-code result output out info)
(cond
((= exit-code 1) (git-displ out) #t)