-(context 'MAIN:SITE)
-
-(define (set-int K V) (set K (int V 0 10)))
-
-(define (set-ints K V)
- (map (curry set-int K) (clean empty? (parse V "\\s*,?\\s*" 0))))
-
-(define (set-list K V)
- (map (curry set K) (clean empty? (parse V "\\s*,?\\s*" 0))))
-
-(constant
- 'FILE "hourglass.conf"
- 'KEYS '(
- ("libc" set)
- ("listener.ports" set-ints)
- ("listener.ip" set)
- ("listener.activity.dir" set)
- ("control.action" set)
- ("control.dat" set)
- ("control.net" set)
- ("control.extra.dat" set)
- ("control.usage.dat" set)
- ("control.usage.tmp" set)
-
- ("wui.port" set-int)
- ("wui.roles" set)
- ("wui.passwd" set)
- )
- )
-
-(define (setting LINE)
- (when (regex "^\\s([^;#][^=]*)=(.*)" LINE 0)
- (let ((KV (map trim (list $1 $2))))
- (if (lookup (KV 0) KEYS) (apply $it (list (sym (KV 0)) (KV 1)))))))
-
-(map setting (parse (or (read-file FILE) "") "\n"))
-
-####################
-(context MAIN)