31 lines
971 B
Racket
31 lines
971 B
Racket
;;; SPDX-License-Identifier: LGPL-3.0-or-later
|
|
;;; SPDX-FileCopyrightText: Copyright © 2010-2021 Tony Garnock-Jones <tonyg@leastfixedpoint.com>
|
|
|
|
#lang syndicate
|
|
|
|
(require/activate syndicate/reload)
|
|
(require/activate syndicate/supervise)
|
|
(require/activate syndicate/drivers/config)
|
|
|
|
(require "protocol.rkt")
|
|
|
|
(require racket/set)
|
|
(require (only-in racket/list append* flatten))
|
|
(require (only-in racket/string string-split))
|
|
|
|
(spawn-configuration 'ircd "ircd-config.rktd" #:hook (lambda () (stop-when-reloaded)))
|
|
|
|
(spawn #:name 'config
|
|
(stop-when-reloaded)
|
|
|
|
(during (config 'ircd `(port ,$port))
|
|
(assert (ircd-listener port)))
|
|
|
|
(during (config 'ircd `(channel ,$Ch))
|
|
(assert (ircd-channel Ch)))
|
|
|
|
(define/query-set motds (config 'ircd `(motd ,$text)) text)
|
|
(assert (ircd-motd (append*
|
|
(map (lambda (t) (string-split t "\n"))
|
|
(flatten (set->list (motds))))))))
|