3 (define (set-int K V) (set K (int V 0 10)))
6 (set K (map int (clean empty? (parse V "(\\s+|\\s*,\\s*)" 0)))))
9 (set K (clean empty? (parse V "(\\s+|\\s*,\\s*)" 0))))
12 'FILE "hourglass.conf"
14 ("listener.ports" set-ints)
16 ("listener.log.ip" set)
17 ("listener.activity.dir" set)
20 ("control.action" set)
23 ("control.extra.dat" set)
24 ("control.usage.dat" set)
25 ("control.usage.tmp" set)
26 ("control.activity.gap" set-int)
27 ("control.activity.clip" set)
40 (define (setting LINE)
41 (when (regex "^\\s*([^;#][^=]*)=(.*)" LINE 0)
42 (let ((KV (map trim (list $1 $2))))
43 (if (lookup (KV 0) KEYS)
44 (let ((SET $it) (K (sym (KV 0))) (V (KV 1)))
45 ;(write-line 2 (string (list K V)))
46 (apply SET (list K V)))))))
48 (map setting (parse (or (read-file FILE) "") "\n"))