3. Create a configuration file, `config.yaml`, in YAML format:
``` yaml
data-file: "matchbot-data.json"
irc:
server: example.com
port: 6667
nick: matchbot
channel: "##matchbot-test"
```
4. Run `matchbot`:
``` bash
clojure -M -m system
```
## Usage
**`!list`** - show all the games that have a list of players
**`!match game`** - announce a match of `game` to all of its players
**`!players game`** - show all the players of `game`
**`!add game`** - add yourself to the list of players for `game`
**`!remove game`** - remove yourself from the list of players for `game`
**`!help`** - show available commands with their explanations
## Development
### Running the tests
`matchbot` includes automated unit tests for many functions, along with a simple test runner configuration with [Kaocha](https://cljdoc.org/d/lambdaisland/kaocha/).
Running the tests is a similar process to running the main application:
When developing `matchbot`, it can be more convenient and efficient to work interactively with a REPL integrated into your text editor.
Since `matchbot` uses Clojure's [tools.deps library](https://clojure.org/guides/deps_and_cli), the best way to start is by following [the relevant part of the nREPL documentation](https://nrepl.org/nrepl/usage/server.html#using-clojure-cli-tools) to create a user-level `deps.edn` file, then install the [nREPL extension for your text editor](https://nrepl.org/nrepl/usage/clients.html#editorsides).
You can create, start and stop an instance of the chatbot process with the functions in the `system` namespace:
Once you are familiar with nREPL, you can additionally use [tools.namespace.repl](https://github.com/clojure/tools.namespace) to make reevaluating (reloading) your changes easier:
Make sure that you create your system instance in the REPL, since `refresh` will forcefully delete the instance if it has been defined in another namespace!