metacircular-codex/package.lisp

47 lines
2.0 KiB
Common Lisp

;;;; package.lisp
(defpackage #:mcodex
(:use #:cl)
(:export #:rsync
#:doc-path
#:build-site
#:deploy-site
#:publish-site
#:mcodex-path
#:build-and-publish)
(:documentation
"The MCODEX package provides tools for building and deploying documentation using
the Codex documentation system and rsync for file synchronization.
Overview:
This package facilitates generating documentation for Lisp systems (via `build-site`)
and deploying it to a remote server (via `rsync`, `deploy-site`, `publish-site`, or
`build-and-publish`). It supports package-specific deployment paths (via `mcodex-path`)
and allows clients to customize paths, hosts, and packages through function arguments.
The default configuration targets a remote server at web.metacircular.net, with
documentation stored under /srv/www/codex/.
Key Functions:
- `build-site`: Generates documentation for a specified package using Codex.
- `rsync`: Synchronizes a local directory to a remote destination.
- `deploy-site`: Deploys a directory to a remote server, wrapping `rsync`.
- `publish-site`: Builds documentation and deploys it in one step.
- `mcodex-path`: Constructs package-specific remote paths (e.g., /srv/www/codex/test/).
- `build-and-publish`: High-level function to build and deploy with package-specific paths.
Usage Example:
(ql:quickload :mcodex)
(mcodex:build-and-publish) ; Build and deploy for current package
(mcodex:publish-site :package \"test\" :path \"my/docs/\") ; Custom build and deploy
Dependencies:
- Common Lisp (CL)
- UIOP (for running rsync)
- Codex (for generating documentation)
Notes:
- Requires rsync installed and SSH access configured for the remote server.
- Assumes Codex is set up to output documentation to a directory like
docs/build/mcodex/html/.
- All functions allow parameter overrides for flexibility."))