1#!@GUILE@ \2--no-auto-compile -s3!#45(use-modules (toobusy search)6 (toobusy config)7 (toobusy event)8 (toobusy util)9 (toobusy time)1011 (srfi srfi-1)12 (srfi srfi-37))1314(define start-opt15 (option16 '(#\s "start") #t #f17 (lambda (o n x vals)18 (alist-cons 'start-time x vals))))1920(define end-opt21 (option22 '(#\e "end") #t #f23 (lambda (o n x vals)24 (alist-cons 'end-time x vals))))2526(define (parse-args args flags)27 (reverse28 (args-fold29 args30 flags31 (lambda (o n x vals)32 (error "unrecognized option" n))33 cons34 '())))3536(define (get-start-time opt)37 (if opt38 (string->tm opt)39 (localtime (current-time))))4041(define (get-end-time opt start-tm)42 (let ((opt (or opt (config-list-delta %config))))43 (or (reltime->tm start-tm opt)44 (string->tm opt))))4546;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4748(define (main . args)49 (let* ((flags (list start-opt end-opt))50 (opts (parse-args args flags)))51 (let* ((start (get-start-time (assq-ref opts 'start-time)))52 (end (get-end-time (assq-ref opts 'end-time) start)))53 (display-events (search (range-query start end))))))5455(load-config!)56(apply main (cdr (command-line)))5758;; vim: ft=scheme