# visage $ ./visage.com add-alias -c config.example.dhall --alias dev@example.com --dest me@real.example

CLI & usage

Subcommands

// daemon · config-check · add-alias · rm-alias · log
./visage.com <command> [options]

  daemon -c FILE          run the SMTP + admin HTTP daemon
  config-check -c FILE    validate the config file and exit
  add-alias -c FILE --alias A@D --dest X@Y
                          add an alias via the running daemon
  rm-alias  -c FILE --alias A@D --dest X@Y
                          remove an alias via the running daemon
  log -c FILE [-n N]      print recent log entries via the daemon
  --help · --version

The daemon owns the store (single-writer flock); the CLI admin subcommands (add-alias, rm-alias, log) are HTTP clients to the running daemon, not direct store writers.

Build

// cosmocc · make · make wasm

Requires cosmocc. dhall-c and datalog-dafsa are vendored as git submodules; mbedTLS is vendored under vendor/.

git submodule update --init --recursive   # fetch vendor/dhall-c + vendor/datalog-dafsa
make                                      # builds visage.com (APE) + visage.com.dbg (ELF) + *_check tools

To use sibling dhall-c/datalog-dafsa checkouts instead of the submodules, build with make DHALL_C=../dhall-c DATALOG=../datalog-dafsa (likewise scripts/build-wasm.sh honors DHALL_C).

For the browser build (needs emscripten clang lld llvm nodejs):

make wasm                # → docs/visage.js + docs/visage.wasm
node tests/wasm-smoke.js # headless smoke test of the wasm module