etc: Update committer.scm.

This commit is contained in:
Hilton Chain 2026-02-24 14:47:03 +08:00
parent 5cbca316d9
commit eb6e174eb8
No known key found for this signature in database
GPG Key ID: ACC66D09CA528292

View File

@ -5,7 +5,7 @@
;;; Copyright © 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim@guixotic.coop>
;;; Commentary: ;;; Commentary:
@ -267,37 +267,43 @@ corresponding to the top-level definition containing the staged changes."
(define variable-name (define variable-name
(second old)) (second old))
(define version (define version
(and=> ((xpath:node-or (match ((xpath:node-or
(xpath:sxpath '(*any* *any* package version *any*)) (xpath:sxpath '(*any* *any* package version *any*))
;; For let binding ;; For let binding
(xpath:sxpath '(*any* *any* (*any*) package version *any*))) (xpath:sxpath '(*any* *any* (*any*) package version *any*)))
(cons '*TOP* new)) (cons '*TOP* new))
first)) (() #f)
(format port ((version . rest) version)))
"rosenthal: ~a: Update to ~a.~%~%* ~a (~a): Update to ~a.~%" (if version
variable-name version file-name variable-name version) (format port
"rosenthal: ~a: Update to ~a.~%~%* ~a (~a): Update to ~a.~%"
variable-name version file-name variable-name version)
(format port
"rosenthal: ~a: Update.~%~%* ~a (~a): Update.~%"
variable-name file-name variable-name))
(for-each (lambda (field) (for-each (lambda (field)
(let ((old-values (get-values old field)) (let ((old-values (get-values old field))
(new-values (get-values new field))) (new-values (get-values new field)))
(or (equal? old-values new-values) (or (equal? old-values new-values)
(let ((removed (lset-difference equal? old-values new-values)) (let ((removed (lset-difference equal? old-values new-values))
(added (lset-difference equal? new-values old-values))) (added (lset-difference equal? new-values old-values)))
(format port (unless (and (null? added) (null? removed))
"[~a]: ~a~%" field (format port
(break-string "[~a]: ~a~%" field
;; A dependency can be a list of (pkg output). (break-string
(match (list (map object->string removed) ;; A dependency can be a list of (pkg output).
(map object->string added)) (match (list (map object->string removed)
((() added) (map object->string added))
(format #f "Add ~a." ((() added)
(listify added))) (format #f "Add ~a."
((removed ()) (listify added)))
(format #f "Remove ~a." ((removed ())
(listify removed))) (format #f "Remove ~a."
((removed added) (listify removed)))
(format #f "Remove ~a; add ~a." ((removed added)
(listify removed) (format #f "Remove ~a; add ~a."
(listify added)))))))))) (listify removed)
(listify added)))))))))))
'(inputs propagated-inputs native-inputs))) '(inputs propagated-inputs native-inputs)))
(define* (add-commit-message file-name variable-name (define* (add-commit-message file-name variable-name