summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2021-09-26 23:54:32 +0530
committerArun Isaac2021-09-26 23:58:16 +0530
commit8f6d83833df3380fa9d2ed58ce31afa92342fcf9 (patch)
tree52d9fd7aea1e93f53853a878d3a40203f63b5021
parentc03d960f8475b184ea59f06fd64a143854e03ca9 (diff)
downloadgn-gemtext-8f6d83833df3380fa9d2ed58ce31afa92342fcf9.tar.gz
gnbug: Extract number of posts.
* gnbug (file-details): Extract number of posts. (<issue>): Add posts field. (issues): Initialize posts field.
-rwxr-xr-xgnbug32
1 files changed, 21 insertions, 11 deletions
diff --git a/gnbug b/gnbug
index b79a118..28d55ef 100755
--- a/gnbug
+++ b/gnbug
@@ -50,7 +50,7 @@ even if it exits non-locally. Return the value returned by PROC."
(define-record-type <issue>
(issue file title creator created-date created-relative-date
- assigned keywords open tasks completed-tasks)
+ assigned keywords open tasks completed-tasks posts)
issue?
(file issue-file)
(title issue-title)
@@ -61,7 +61,8 @@ even if it exits non-locally. Return the value returned by PROC."
(keywords issue-keywords)
(open issue-open)
(tasks issue-tasks)
- (completed-tasks issue-completed-tasks))
+ (completed-tasks issue-completed-tasks)
+ (posts issue-posts))
(define (issues)
"Return a list of all issues, sorted oldest first."
@@ -85,7 +86,8 @@ even if it exits non-locally. Return the value returned by PROC."
(delete "closed" all-keywords)
(not (member "closed" all-keywords))
(hashtable-ref file-details 'tasks 0)
- (hashtable-ref file-details 'completed-tasks 0))))
+ (hashtable-ref file-details 'completed-tasks 0)
+ (hashtable-ref file-details 'posts #f))))
(find-files "."
(lambda (name _)
(and (string-suffix? ".gmi" name)
@@ -182,15 +184,23 @@ ports) in that it also supports DOS line endings."
port)))
(call-with-input-pipe
(lambda (port)
- (let ((alist (read port)))
- (for-each (lambda (key)
- (hashtable-set! result key (assq-ref alist key)))
- (list 'creator 'created-date 'created-relative-date))))
- "git" "log" "--diff-filter=A"
+ (hashtable-set!
+ result 'posts
+ (port-transduce
+ (tmap (lambda (line)
+ (let ((alist (call-with-input-string line read)))
+ (hashtable-set! result 'creator
+ (assq-ref alist 'author))
+ (hashtable-set! result 'created-date
+ (assq-ref alist 'author-date))
+ (hashtable-set! result 'created-relative-date
+ (assq-ref alist 'author-relative-date)))))
+ rcount get-line port)))
+ "git" "log"
(string-append "--format=format:("
- "(creator . \"%an\")"
- "(created-date . %at)"
- "(created-relative-date . \"%ar\")"
+ "(author . \"%an\")"
+ "(author-date . %at)"
+ "(author-relative-date . \"%ar\")"
")")
"--" file)
result))