X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=demos%2Fircbot.scm;h=b962ad742db99e30e2437305190740434b98ce80;hb=c769bb3b2c949c304eb4395d3f24eebea6106c1a;hp=48fc6b7ac7a6ba5d76d08ca4dd8e7f51b80bb271;hpb=165231476f466b4dbeca51c981cf0dfa2963ff16;p=8sync.git diff --git a/demos/ircbot.scm b/demos/ircbot.scm index 48fc6b7..b962ad7 100755 --- a/demos/ircbot.scm +++ b/demos/ircbot.scm @@ -22,8 +22,10 @@ (use-modules (8sync) (8sync systems irc) + (8sync repl) (oop goops) (srfi srfi-37) + (ice-9 format) (ice-9 match)) (define-class ()) @@ -85,7 +87,10 @@ (option '("channels") #t #f (lambda (opt name arg result) `(#:channels ,(string-split arg #\,) - ,@result)))) + ,@result))) + (option '("repl") #f #t + (lambda (opt name arg result) + `(#:repl ,(or arg #t) ,@result)))) (lambda (opt name arg result) (format #t "Unrecognized option `~a'\n" name) (exit 1)) @@ -103,8 +108,22 @@ #:username username #:server server #:channels channels)) + (define repl-manager + (cond + ((string? repl) + (hive-create-actor* hive "repl" + #:path repl)) + (repl + (hive-create-actor* hive "repl")))) + + (define initial-messages + (if repl + (list (bootstrap-message hive irc-bot 'init) + (bootstrap-message hive repl-manager 'init)) + (list (bootstrap-message hive irc-bot 'init)))) + ;; TODO: load REPL - (ez-run-hive hive (list (bootstrap-message hive irc-bot 'init)))) + (run-hive hive initial-messages)) (define (main args) (define parsed-args (parse-args "ircbot.scm" args))