aboutsummaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-08-29 13:53:49 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-08-29 14:52:21 -0400
commitee4a429d4905fbe05f5f642fae6249747b43f0dd (patch)
tree9ff48eb314ec3990732a765c5edd49c909ceacf6 /etc
parentc0dad02e9f20e59def81bcccd73922d7e2beb88a (diff)
downloadguix-ee4a429d4905fbe05f5f642fae6249747b43f0dd.tar
guix-ee4a429d4905fbe05f5f642fae6249747b43f0dd.tar.gz
etc: teams: Refactor list-teams.
* etc/teams.scm.in (print-team, sort-teams): New procedures. (list-teams): Use them.
Diffstat (limited to 'etc')
-rw-r--r--etc/teams.scm.in56
1 files changed, 30 insertions, 26 deletions
diff --git a/etc/teams.scm.in b/etc/teams.scm.in
index b017bb3d1a..3630044ca6 100644
--- a/etc/teams.scm.in
+++ b/etc/teams.scm.in
@@ -672,37 +672,41 @@ TEAMS when a patch is received by Debbugs."
(format #t "~a~a~%" prefix (member->string member)))
(sort-members (team-members team))))
-(define (list-teams)
- "Print all teams, their scope and their members."
- (define port* (current-output-port))
- (define width* (%text-width))
- (for-each
- (lambda (team)
- (format port*
- "\
+(define (print-team team)
+ "Print TEAM, a <team> record object."
+ (format #t
+ "\
id: ~a
name: ~a
description: ~a
~amembers:
"
- (team-id team)
- (team-name team)
- (or (and=> (team-description team)
- (lambda (text)
- (string->recutils
- (fill-paragraph text width*
- (string-length "description: ")))))
- "<none>")
- (match (team-scope team)
- (() "")
- (scope (format #f "scope: ~{~s ~}~%" scope))))
- (list-members team #:prefix "+ ")
- (newline))
- (sort
- (hash-map->list (lambda (key value) value) %teams)
- (lambda (team1 team2)
- (string<? (symbol->string (team-id team1))
- (symbol->string (team-id team2)))))))
+ (team-id team)
+ (team-name team)
+ (or (and=> (team-description team)
+ (lambda (text)
+ (string->recutils
+ (fill-paragraph text (%text-width)
+ (string-length "description: ")))))
+ "<none>")
+ (match (team-scope team)
+ (() "")
+ (scope (format #f "scope: ~{~s ~}~%" scope))))
+ (list-members team #:prefix "+ ")
+ (newline)))
+
+(define (sort-teams teams)
+ "Sort TEAMS, a list of <team> record objects."
+ (sort teams
+ (lambda (team1 team2)
+ (string<? (symbol->string (team-id team1))
+ (symbol->string (team-id team2))))))
+
+(define* (list-teams)
+ "Print all teams, their scope and their members."
+ (for-each print-team
+ (sort-teams (hash-map->list
+ (lambda (_ value) value) %teams))))
(define (diff-revisions rev-start rev-end)