diff options
Diffstat (limited to 'module/calp/entry-points/ical.scm')
-rw-r--r-- | module/calp/entry-points/ical.scm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/module/calp/entry-points/ical.scm b/module/calp/entry-points/ical.scm new file mode 100644 index 00000000..3bf211df --- /dev/null +++ b/module/calp/entry-points/ical.scm @@ -0,0 +1,31 @@ +(define-module (calp entry-points ical) + :export (main) + :use-module (util) + :use-module (util options) + :use-module (output ical) + :use-module (ice-9 getopt-long) + :use-module (datetime) + ) + +(define opt-spec + '((from (value #t) (single-char #\F)) + (to (value #t) (single-char #\T) + (description "Returns all elements between these two dates.")) + (help (single-char #\h) + (description "Print this help.")))) + +(define (main args) + (define opts (getopt-long args (getopt-opt opt-spec))) + + (define start (cond [(option-ref opts 'from #f) => parse-freeform-date] + [else (start-of-month (current-date))])) + (define end (cond [(option-ref opts 'to #f) => parse-freeform-date] + ;; [else (normalize-date* (set (month start) = (+ 1)))] + [(date+ start (date month: 1))] + )) + + (when (option-ref opts 'help #f) + (print-arg-help opt-spec) + (throw 'return)) + + (print-events-in-interval start end)) |