diff --git a/repl-server.rkt b/repl-server.rkt index 68511df..44723f5 100644 --- a/repl-server.rkt +++ b/repl-server.rkt @@ -80,6 +80,13 @@ (hash-set! *environments* username (make-base-namespace))) (hash-ref *environments* username)) +(define (help) + (printf "This is RacketSSH, a secure REPL for Racket.\n") + (printf "Definitions made are kept in a per-user environment.\n") + (printf "Beyond core Racket,\n") + (printf " (say ) - communicates its argument to other logged-in users\n") + (printf " (help) - this help message\n")) + (define (repl-shell username in out) (define handle (join-room *interaction* username)) (define env (get-user-environment username)) @@ -93,7 +100,9 @@ (sandbox-namespace-specs (list (lambda () env)))) (parameterize ((current-eval (make-evaluator '(begin)))) (printf "Hello, ~a.\n" username) + (printf "Type (help) for help.\n") (eval `(,*interaction-handle* ,handle)) + (eval `(define help ,help)) (eval `(define say ,(lambda (utterance) (printf " You: ~a\n" (->string/safe utterance)) (send (*interaction-handle*) say utterance)