summary refs log tree commit diff stats
path: root/cock.mod.scm
blob: 5fc9c79d58a0b09a35a03569e149cd9896d0c9a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
(module cock (serve)

  (import (scheme)
          (chicken base)
          (chicken process signal)
          (spiffy)
          (utf8))

  (define (eprint . xs)
    (for-each (lambda (x) (display x (current-error-port)))
              xs)
    (newline (current-error-port)))

  (define (serve root port)
    (set-signal-handler! signal/int
                         (lambda _
                           (eprint "stopping server")
                           (exit)))
    (eprint "Starting web server in " root "...")
    (eprint "Served at http://localhost:" port)
    (eprint "[Ctrl-c to stop]")
    (parameterize ((server-port port)
                   (root-path root))
      (start-server))))