main.fnl (754B)
1 ; (set _G.modem-spew io.stderr) 2 (local server (require :server)) 3 (local webhook (require :webhook)) 4 (local json (require :dkjson)) 5 6 (local {: smsc : number : device } 7 (let [filename (assert (. arg 1) "missing argument") 8 text (with-open [config (io.open filename :r)] 9 (config:read "*a"))] 10 (match (json.decode text) 11 a a 12 (nil pos err) (error (.. "reading " filename ": " err))))) 13 14 (local { : view} (require :fennel)) 15 16 (local sms ((. (require :sms) :new) { :smsc smsc :device device })) 17 18 (doto (server.new 19 (fn handle [body] 20 (let [message (webhook.parse body)] 21 (sms:send number message) 22 "Sent"))) 23 (: :listen) 24 (print "server ready") 25 (: :loop))