Skip to content

Commit

Permalink
docs: add documentation on the manifest
Browse files Browse the repository at this point in the history
Signed-off-by: Vincenzo Palazzo <[email protected]>
  • Loading branch information
vincenzopalazzo committed Apr 4, 2023
1 parent 562d190 commit 7b4f8f9
Showing 1 changed file with 39 additions and 1 deletion.
40 changes: 39 additions & 1 deletion docs/docs-book/src/support-coffee.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,43 @@
# How to support?

Core Lightning support many different ways to write a plugin, and if this is bad or good
will not be discussed in this section.
However, we must have a way to install automatically all the plugins that the ecosystem supports.

With Coffee, we choose to give this freedom to the developers of the plugin, in fact, coffee uses a
manifest where it is possible to specify the install script and the runnable file/binary file.

## Add a Manifest file

Add a manifest in the root directory called `coffee.yml` or `coffee.yaml`.
The coffee manifest is a yaml file with the name `coffee.yml` or `coffee.yaml`, where it is possible
specify the install script an other meta information.

Coffee will heavily search this file in the root directory of the plugin, and it is not so different
from what the other languages like nodejs, go, rust does.

An example of the coffee manifest that will install a Kotlin plugin is the following one:

```yaml
---
plugin:
name: btcli4j
version: 0.0.1
lang: java
install: |
sh -C ./gradlew createRunnableScript
main: btcli4j-gen.sh
```
Where it is possible to specify the following options:
- `name`: the official name of the plugin, that Coffee will referer to during the installation process;
- `version`: the version of the plugin, that currently is not used;
- `lang`: the language of the plugin, used to try to install a plugin when the `install` script is not specified;
- `install`: a custom install script used by Coffee to compile the plugin;
- `main`: the binary or runnable file that core lightning needs to run.

In the future, the coffee will be also able to install `binary` other than a `plugin`, so coffee will be installed with coffee
itself. With some craziness will be also possible to manage core lightning itself.

Please if you feel that additional meta information needs to be specified open an issue
https://github.com/coffee-tools/coffee/issues

0 comments on commit 7b4f8f9

Please sign in to comment.