example/hello-server.rkt
#lang racket
(require
 racket/generator
 (planet murphy/9p:2:0/server))

(define readme
  (new server-bytes-file%
       [current-name "README"] [mode (file-mode (user r) (group r) (others r))]
       [current-content
        #"Hello!\nThis is a 9P filesystem served by a PLT Racket process.\n"]))

(define value
  (new server-value-file%
       [current-name "value"] [mode (file-mode (user r w) (group r) (others r))]
       [current-content '(some racket values 1 2 3 ...)]))

(define log
  (new server-log-file%
       [current-name "log"] [mode (file-mode (user r) (group r) (others r))]))

(define scratch
  (new server-hash-directory%
       [current-name "scratch"] [mode (file-mode (user r w x) (group r x) (others x))]
       [with-children
        (list (new server-bytes-file%
                   [current-name "README"] [mode (file-mode (user r) (group r) (others r))]
                   [current-content
                    #"This directory is a scratch area.\nEverything is mutable here ;-)\n"]))]))

(define root
  (new server-hash-directory%
       [current-name "/"] [mode (file-mode (user r x) (group r x) (others r x))]
       [with-children (list readme value log scratch)]))

(define filesystem
  (new server-filesystem% [with-root root] [port-no 1234]))

(provide
 (all-defined-out))