]> code.delx.au - gnu-emacs-elpa/blob - packages/web-server/examples/003-file-server.el
Merge commit '0cda39255827f283e7578cd469ae42daad9556a2' from js2-mode
[gnu-emacs-elpa] / packages / web-server / examples / 003-file-server.el
1 ;;; file-server.el --- serve any files using Emacs Web Server
2 ;; Copyright (C) 2014 Free Software Foundation, Inc.
3
4 (lexical-let ((docroot default-directory))
5 (ws-start
6 (lambda (request)
7 (with-slots (process headers) request
8 (let ((path (substring (cdr (assoc :GET headers)) 1)))
9 (if (ws-in-directory-p docroot path)
10 (if (file-directory-p path)
11 (ws-send-directory-list process
12 (expand-file-name path docroot) "^[^\.]")
13 (ws-send-file process (expand-file-name path docroot)))
14 (ws-send-404 process)))))
15 9003))