]> code.delx.au - gnu-emacs-elpa/blob - packages/web-server/examples/003-file-server.el
394d36828bbe9773540b0ee986a5d428ebe51bd5
[gnu-emacs-elpa] / packages / web-server / examples / 003-file-server.el
1 ;;; file-server.el --- serve any files using Emacs Web Server
2 (lexical-let ((docroot default-directory))
3 (ws-start
4 (lambda (request)
5 (with-slots (process headers) request
6 (let ((path (substring (cdr (assoc :GET headers)) 1)))
7 (if (ws-in-directory-p docroot path)
8 (if (file-directory-p path)
9 (ws-send-directory-list process
10 (expand-file-name path docroot) "^[^\.]")
11 (ws-send-file process (expand-file-name path docroot)))
12 (ws-send-404 process)))))
13 9003))