You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ADN-DMR-Peer-Server/plugins
yo 0dd50cd752
refactor(voice-announcements): use server_id_bytes()
4 days ago
..
example feat(plugins): add drop-in plugin framework for voice and unit-data 1 week ago
voice-announcements refactor(voice-announcements): use server_id_bytes() 4 days ago
.gitkeep feat(plugins): add drop-in plugin framework for voice and unit-data 1 week ago
README.md feat(plugins): add drop-in plugin framework for voice and unit-data 1 week ago

README.md

Plugins

Drop-in extensions live under plugins/<name>/. The server loads them at runtime from this directory (default: <project_root>/plugins).

Reference skeleton

example/ is the only plugin versioned in this repository. It is disabled by default (enabled: false in config.yaml). Use it as a minimal, working template (clean architecture layout, event handling, JSON output on call end).

To try it locally, set enabled: true in plugins/example/config.yaml and reload the server (systemctl reload adn-server).

Layout

plugins/<plugin-name>/
  config.yaml              # enabled: true|false (+ plugin options)
  plugin/
    __init__.py            # create_plugin()
    domain/
    application/
    infrastructure/
  tests/

Documentation

Full framework guide (contract, events, threading, PLUGINS server config):

Tests for each plugin run from that plugin's directory:

cd plugins/example
python3 -m pytest tests/ -q

Powered by TurnKey Linux.