Nested reloaders; simple greeter

This commit is contained in:
Tony Garnock-Jones 2019-01-30 16:40:52 +00:00
parent 28d7bd6653
commit 823754c8b5
4 changed files with 23 additions and 6 deletions

View File

@ -0,0 +1,6 @@
#lang imperative-syndicate
(require/activate imperative-syndicate/reload)
(spawn-reloader "config.rkt")
(spawn-reloader "session.rkt")
(spawn-reloader "channel.rkt")
(spawn-reloader "greeter.rkt")

View File

@ -0,0 +1,15 @@
#lang imperative-syndicate
(require "protocol.rkt")
(require "message.rkt")
(require/activate imperative-syndicate/reload)
(spawn #:name 'greeter
(stop-when-reloaded)
(on (asserted (ircd-channel-member $Ch $conn))
(match-define (ircd-connection-info _ N U)
(immediate-query [query-value #f ($ I (ircd-connection-info conn _ _)) I]))
;; TODO: history replay? As the following illustrates, we are able to forge messages
(send! (ircd-event conn (irc-message (irc-source-nick N U) "PRIVMSG" (list Ch)
(format "Welcome to ~a, ~a!" Ch N))))))

View File

@ -17,7 +17,7 @@ settings = {
core = {
real_name = "Tony Garnock-Jones";
user_name = "tonyg";
nick = "two";
nick = "client";
};
"fe-text" = { actlist_sort = "refnum"; };
};

View File

@ -1,7 +1,3 @@
#lang imperative-syndicate
(require/activate imperative-syndicate/reload)
(spawn-reloader "config.rkt")
(spawn-reloader "session.rkt")
(spawn-reloader "channel.rkt")
(spawn-reloader "dynamic-main.rkt")