; (set _G.modem-spew io.stderr) (local server (require :server)) (local webhook (require :webhook)) (local json (require :dkjson)) (local {: smsc : number : device } (let [filename (assert (. arg 1) "missing argument") text (with-open [config (io.open filename :r)] (config:read "*a"))] (match (json.decode text) a a (nil pos err) (error (.. "reading " filename ": " err))))) (local { : view} (require :fennel)) (local sms ((. (require :sms) :new) { :smsc smsc :device device })) (doto (server.new (fn handle [body] (let [message (webhook.parse body)] (sms:send number message) "Sent"))) (: :listen) (print "server ready") (: :loop))