Improve documentation for lua scripts

I had a hard time figuring out all the steps relevant for this to work.
Hopefully this brief summary and couple of links will help the next
person writing their own script.

See: #601
This commit is contained in:
Hugo 2025-02-24 06:48:40 +00:00 committed by George Kiagiadakis
parent eec702e4a1
commit d222b957af
4 changed files with 45 additions and 0 deletions

View file

@ -97,6 +97,8 @@ the parsing order matters in merging. See :ref:`config_conf_file_fragments`
fragment files are *only* looked up in the directories specified by this
variable.
.. _config_locations_scripts:
Location of scripts
-------------------

View file

@ -42,6 +42,7 @@ Table of Contents
scripting/lua_api.rst
scripting/existing_scripts.rst
scripting/custom_scripts.rst
.. toctree::
:maxdepth: 2

View file

@ -0,0 +1,41 @@
.. _scripting_custom_scripts:
Custom Scripts
==============
The locations where WirePlumber searches for scripts is explained in
:ref:`config_locations_scripts`.
Scripts are not loaded automatically; a component muse be defined for them, and
this component must be included in a profile. See
:ref:`config_components_and_profiles`.
Full example
------------
Let's assume that ``~/.local/share/wireplumber/scripts/90-hello-world.lua``
contains the following script:
.. code-block:: lua
log = Log.open_topic("hello-world")
log.info("Hello world")
In order for it to run, we'll define a component and include it in the default
profile by including the following configuration (for example, in
``~/.config/wireplumber/wireplumber.conf.d/90-hello-world.conf``):
.. code-block::
wireplumber.components = [
{
name = "90-hello-world.lua", type = script/lua
provides = hello-world
}
]
wireplumber.profiles = {
main = {
hello-world = required
}
}

View file

@ -2,6 +2,7 @@
sphinx_files += files(
'lua_api.rst',
'existing_scripts.rst',
'custom_scripts.rst',
)
subdir('lua_api')