1
0
Fork 0
dotfiles/.calendars/sync
Lucas Sta Maria ea1866cfe6
feat(calendars): add calendar sync script
Signed-off-by: Lucas Sta Maria <lucas@priime.dev>
2023-12-31 00:03:12 -05:00

30 lines
638 B
Racket

#!/usr/bin/racket
#lang racket/base
(require racket/match)
(require racket/port)
(require net/url)
(define calendars
'())
(define (main)
(for ([calendar-info calendars])
(match-define [cons name calendar-link] calendar-info)
(define url (string->url calendar-link))
(define data (port->bytes (get-pure-port url)))
(define out-filename (format "~a.ics" name))
(when (file-exists? out-filename)
(delete-file out-filename))
(call-with-output-file out-filename
(lambda (out)
(parameterize ([current-output-port out])
(write-bytes data))))
(void)))
(module+ main
(main))