(declare (unit tick-info)) (module tick-info () (import scheme) (import (chicken base) (chicken file) (chicken pathname)) (import commands srfi-1) (import tick tick-params) (define (read-all-tickets) (filter-map (lambda (thash) (and (ticket-exists? thash) (read-ticket thash metadata-only?: #t))) (directory (tickets-dir)))) (define-command 'info #<#EOF info Show general information about tick and the database. EOF (lambda (args*) (let ((tickets (read-all-tickets))) (print "DB directory: " (db-dir)) (print "Number of tickets: " (length tickets)) (print "Open tickets: " (count (lambda (t) (not (equal? (ticket-status t) "closed"))) tickets)) (print "Unassigned tickets: " (count (lambda (t) (not (ticket-owner t))) tickets)) ))) ) ;; end module