aboutsummaryrefslogtreecommitdiff
path: root/main.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-03-01 15:23:57 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-03-01 15:23:57 +0100
commitb814f06b57e4e442d5f115865d26dfc427c3338a (patch)
tree096d23adfd823c9f8d31da7bf87f63c65e338e6a /main.scm
parentFix memmory error. (diff)
downloadcalp-b814f06b57e4e442d5f115865d26dfc427c3338a.tar.gz
calp-b814f06b57e4e442d5f115865d26dfc427c3338a.tar.xz
Add color-if and for-each-in macros.
Diffstat (limited to '')
-rwxr-xr-xmain.scm49
1 files changed, 22 insertions, 27 deletions
diff --git a/main.scm b/main.scm
index 07836b04..9469e955 100755
--- a/main.scm
+++ b/main.scm
@@ -14,24 +14,23 @@
(define (parse-dates! cal)
;;; Parse all start times into scheme date objects.
- (for-each (cut transform-attr! <> "DTSTART"
- (lambda (start)
- (localize-date
- (string->date
- start
- (case (string-length start)
- ((8) "~Y~m~d")
- ((15) "~Y~m~dT~H~M~S")
- ((16) "~Y~m~dT~H~M~S~z"))))))
- (children cal 'VEVENT)))
+ (for-each-in (children cal 'VEVENT)
+ (cut transform-attr! <> "DTSTART"
+ (lambda (start)
+ (localize-date
+ (string->date
+ start
+ (case (string-length start)
+ ((8) "~Y~m~d")
+ ((15) "~Y~m~dT~H~M~S")
+ ((16) "~Y~m~dT~H~M~S~z"))))))))
(define (search cal term)
(cdr (let ((events (filter (lambda (ev) (eq? 'VEVENT (type ev)))
(children cal))))
(find (lambda (ev) (string-contains-ci (car ev) term))
- (map cons (map (cut get-attr <> "SUMMARY")
- events)
- events)))))
+ (map-cons (cut get-attr <> "SUMMARY")
+ events)))))
(define (main args)
@@ -42,22 +41,18 @@
(define cal (make-vcomponent path))
-
- #; (define pizza-event (search cal "pizza"))
-
(parse-dates! cal)
-;;; Sort the events, and print a simple agenda.
+ ;; Sort the events, and print a simple agenda.
- (let ((sorted-events
- (sort* (children cal 'VEVENT)
- time<? (compose date->time-utc (extract "DTSTART")))))
- (for-each (lambda (ev) (format #t "~a~a~a | ~a~%"
- (if (date-today? (get-attr ev "DTSTART")) STR-YELLOW "")
- (date->string (get-attr ev "DTSTART") "~1 ~H:~M")
- STR-RESET
- (get-attr ev "SUMMARY")))
- sorted-events))
+ (for-each-in (sort* (children cal 'VEVENT)
+ time<? (compose date->time-utc (extract "DTSTART")))
+ (lambda (ev) (format #t "~a | ~a~%"
+ (let ((start (get-attr ev "DTSTART")))
+ (color-if (date-today? start) STR-YELLOW
+ (date->string start "~1 ~H:~M")))
+ (get-attr ev "SUMMARY")))))
- )
+k
+ #; (define pizza-event (search cal "pizza"))