unison/docs/configuration.md
2022-11-09 11:30:56 -06:00

2.7 KiB

Configuration

UCM Configuration

Environment variables

UNISON_DEBUG

Enable debugging output for various portions of the application. See lib/unison-prelude/src/Unison/Debug.hs for the full list of supported flags.

E.g.

# Enable ALL debugging flags (likely quite noisy)
$ UNISON_DEBUG= ucm
# Enable timing debugging, printing how long different actions take.
$ UNISON_DEBUG=TIMING ucm
# Enable LSP and TIMING debugging
$ UNISON_DEBUG=LSP,TIMING ucm

UNISON_PAGER

Allows selecting which pager to use for long command outputs. Defaults to less on Linux & Mac, more on Windows

E.g.

# User more instead of less
$ UNISON_PAGER=more ucm

UNISON_LSP_PORT

Allows selecting the port to run the LSP server on. Defaults to 5757.

E.g.

$ UNISON_LSP_PORT=8080 ucm

UNISON_SHARE_HOST

Allows selecting the location for the default Share server.

E.g.

$ UNISON_SHARE_HOST="http://localhost:5424" ucm

UNISON_SHARE_ACCESS_TOKEN

Allows overriding the credentials used when authenticating with the Share server.

E.g.

$ UNISON_SHARE_ACCESS_TOKEN="my.token.string" ucm

Local Codebase Server

The port, host and token to be used for the local codebase server can all be configured by providing environment variables when starting ucm, using UCM_PORT, UCM_HOST, and UCM_TOKEN.

E.g.

UCM_PORT=8080 UCM_HOST=localhost UCM_TOKEN=1234 ucm

Codebase Configuration

Also, see the guide here

The following configuration options can be provided within the .unisonConfig file, which exists within the codebase directory, or at ~/.unisonConfig for your default codebase.

# Attach myself as author and use BSD license for all of my contributions
DefaultMetadata = [ ".metadata.authors.chrispenner"
                  , ".metadata.licenses.chrispenner" ]

# RemoteMapping allows mapping a path in the codebase to a specific location on share.
# Here I state that I want my .share namespace to push to .chrispenner.public
# Everything inside .share will be mapped accordingly, e.g. .share.foo will map to
# chrispenner.public.foo on share.
RemoteMapping {
  share = "chrispenner.public"
}