diff options
author | Arun Isaac | 2022-03-18 16:21:17 +0530 |
---|---|---|
committer | Arun Isaac | 2022-03-18 16:24:49 +0530 |
commit | 4ca7a5ae2f80b41bf6ef8aecbcb5325bc788d968 (patch) | |
tree | 50aeff776d2c2627eb04b224791dfa78048d279b | |
parent | f7fe6f27ea67901ee51ec91c9fdd40fcd13e8d4b (diff) | |
download | tissue-4ca7a5ae2f80b41bf6ef8aecbcb5325bc788d968.tar.gz tissue-4ca7a5ae2f80b41bf6ef8aecbcb5325bc788d968.tar.lz tissue-4ca7a5ae2f80b41bf6ef8aecbcb5325bc788d968.zip |
issue: Add authors function returning all authors.
* tissue/issue.scm (authors): New public function.
-rw-r--r-- | tissue/issue.scm | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tissue/issue.scm b/tissue/issue.scm index 8d1d11c..91585a7 100644 --- a/tissue/issue.scm +++ b/tissue/issue.scm @@ -48,6 +48,7 @@ post-author post-date post-relative-date + authors issues)) (define %aliases @@ -132,6 +133,21 @@ return #f." (time-monotonic->date (make-time time-monotonic 0 timestamp))) +(define authors + (memoize-thunk + (lambda () + "Return a list of all authors who have committed to this git +repository." + (delete-duplicates + (map (cut resolve-alias <> (%aliases)) + (call-with-input-pipe + (lambda (port) + (port-transduce (tmap (lambda (line) + (match (string-split line #\tab) + ((_ author) author)))) + rcons get-line port)) + "git" "shortlog" "--summary")))))) + (define (resolve-alias name aliases) "Resolve NAME against ALIASES, a list of aliases. ALIASES should be in the form of the argument of the same name to `tissue-configuration' |