Use auto-generated config documentation

This commit is contained in:
Joscha 2023-04-24 14:03:40 +02:00
parent cc7dd29af4
commit 39026a217d
3 changed files with 110 additions and 101 deletions

View file

@ -7,10 +7,11 @@ Procedure when bumping the version number:
1. Update dependencies in a separate commit 1. Update dependencies in a separate commit
2. Set version number in `Cargo.toml` 2. Set version number in `Cargo.toml`
3. Add new section in this changelog 3. Add new section in this changelog
4. Commit with message `Bump version to X.Y.Z` 4. Run `cargo run help-config > CONFIG.md`
5. Create tag named `vX.Y.Z` 5. Commit with message `Bump version to X.Y.Z`
6. Fast-forward branch `latest` 6. Create tag named `vX.Y.Z`
7. Push `master`, `latest` and the new tag 7. Fast-forward branch `latest`
8. Push `master`, `latest` and the new tag
## Unreleased ## Unreleased

95
CONFIG.md Normal file
View file

@ -0,0 +1,95 @@
# Configuration options
Cove's config file uses the [TOML](https://toml.io/) format.
## `data_dir`
**Required:** no
**Type:** path
**Default:** platform-dependent
The directory that cove stores its data in when not running in ephemeral
mode.
Relative paths are interpreted relative to the user's home directory.
See also the `--data-dir` command line option.
## `ephemeral`
**Required:** yes
**Type:** boolean
**Default:** `false`
Whether to start in ephemeral mode.
In ephemeral mode, cove doesn't store any data. It completely ignores
any options related to the data dir.
See also the `--ephemeral` command line option.
## `euph.rooms.<room>.autojoin`
**Required:** yes
**Type:** boolean
**Default:** `false`
Whether to automatically join this room on startup.
## `euph.rooms.<room>.force_username`
**Required:** yes
**Type:** boolean
**Default:** `false`
If `euph.rooms.<room>.username` is set, this will force cove to set the
username even if there is already a different username associated with
the current session.
## `euph.rooms.<room>.password`
**Required:** no
**Type:** string
If set, cove will try once to use this password to authenticate, should
the room be password-protected.
## `euph.rooms.<room>.username`
**Required:** no
**Type:** string
If set, cove will set this username upon joining if there is no username
associated with the current session.
## `offline`
**Required:** yes
**Type:** boolean
**Default:** `false`
Whether to start in offline mode.
In offline mode, cove won't automatically join rooms marked via the
`autojoin` option on startup. You can still join those rooms manually by
pressing `a` in the rooms list.
See also the `--offline` command line option.
## `rooms_sort_order`
**Required:** yes
**Type:** string
**Values:** `alphabet`, `importance`
**Default:** `alphabet`
Initial sort order of rooms list.
`alphabet` sorts rooms in alphabetic order.
`importance` sorts rooms by the following criteria (in descending order
of priority):
1. connected rooms before unconnected rooms
2. rooms with unread messages before rooms without
3. alphabetic order

107
README.md
View file

@ -5,7 +5,7 @@ real-time chat platform.
![A very meta screenshot](screenshot.png) ![A very meta screenshot](screenshot.png)
It runs on Linux, Windows and macOS. It runs on Linux, Windows, and macOS.
## Using cove ## Using cove
@ -18,6 +18,15 @@ things in) won't automatically shrink. If it takes up too much space, try
running `cove gc` and waiting for it to finish. This isn't done automatically running `cove gc` and waiting for it to finish. This isn't done automatically
because it can take quite a while. because it can take quite a while.
## Configuring cove
A complete list of config options is available in the [CONFIG.md](CONFIG.md)
file or via `cove help-config`.
When launched, cove prints the location it is loading its config file from. To
configure cove, create a config file at that location. This location can be
changed via the `--config` command line option.
## Installation ## Installation
At this point, cove is not available via any package manager. At this point, cove is not available via any package manager.
@ -75,99 +84,3 @@ in the full version you want to install:
```bash ```bash
$ cargo install --force --git https://github.com/Garmelon/cove --tag v0.1.0 $ cargo install --force --git https://github.com/Garmelon/cove --tag v0.1.0
``` ```
## Config file
Cove's config file uses the [TOML](https://toml.io/) format.
When launched, cove prints the location it is loading its config file from. To
configure cove, create a config file at that location. This location can be
changed via the `--config` command line option.
The following is a complete list of available options. If a command line option
with the same purpose exists, it takes precedence over the option specified in
the config file.
### `data_dir`
**Type:** String (representing path)
**Default:** Platform dependent
The directory that cove stores its data in when not running in ephemeral mode.
Relative paths are interpreted relative to the user's home directory.
See also the `--data-dir` command line option.
### `ephemeral`
**Type:** Boolean
**Default:** `false`
Whether to start in ephemeral mode.
In ephemeral mode, cove doesn't store any data. It completely ignores any
options related to the data dir.
See also the `--ephemeral` command line option.
### `offline`
**Type:** Boolean
**Default:** `false`
Whether to start in offline mode.
In offline mode, cove won't automatically join rooms marked via the `autojoin`
option on startup. You can still join those rooms manually by pressing `a` in
the rooms list.
See also the `--offline` command line option.
### `rooms_sort_order`
**Type:** String, one of `alphabetic`, `importance`
**Default:** `alphabetic`
Initial sort order of rooms list.
`alphabetic` sorts rooms in alphabetic order.
`importance` sorts rooms by the following criteria (in descending order of
priority):
1. connected rooms before unconnected rooms
2. rooms with unread messages before rooms without
3. alphabetic order
### `euph.rooms.<room>.autojoin`
**Type:** Boolean
**Default:** `false`
Whether to automatically join this room on startup.
### `euph.rooms.<room>.username`
**Type:** String
**Default:** Not set
If set, cove will set this username upon joining if there is no username
associated with the current session.
### `euph.rooms.<room>.force_username`
**Type:** Boolean
**Default:** `false`
If `euph.rooms.<room>.username` is set, this will force cove to set the username
even if there is already a different username associated with the current
session.
### `euph.rooms.<room>.password`
**Type:** String
**Default:** Not set
If set, cove will try once to use this password to authenticate, should the room
be password-protected.