wpexec(1)
SYNOPSIS
wpexec SCRIPT [ARGUMENTS]
DESCRIPTION
wpexec is the WirePlumber script interpreter. It runs a single Lua script against a running PipeWire daemon, without starting a full session manager.
This makes it the tool of choice for developing and testing scripts, for one-off queries and for small standalone policy scripts that run alongside the main WirePlumber instance.
When invoked, wpexec connects to PipeWire, activates the plugins that the
script requires through Core.require_api(), and then runs the script. It
keeps running until the script calls Core.quit(), the connection to
PipeWire is lost, or it is interrupted with SIGINT, SIGTERM or SIGHUP.
Scripts run under wpexec have access to the same Lua API as scripts loaded by the daemon, with the exception of a few functions that only make sense inside the daemon.
ARGUMENTS
- SCRIPT
The path to the Lua script to execute.
- ARGUMENTS
An optional SPA-JSON object that is passed to the script as its argument (
...). Passing anything that is not a JSON object is an error.
EXAMPLES
Run a script:
$ wpexec ./get-default-sink-volume.lua
Run a script with arguments:
$ wpexec ./interactive.lua '{ option1 = "value1", option2 = "value2" }'
Run a script from a build tree, without installing:
$ ./wp-uninstalled.sh wpexec tests/examples/interactive.lua
A script may also be made directly executable by giving it the appropriate
shebang line, as the examples in tests/examples do:
#!/usr/bin/wpexec
ENVIRONMENT
wpexec honours the same environment variables as wireplumber(1), most usefully WIREPLUMBER_DEBUG; see Debug Logging.
EXIT STATUS
Exit codes follow the conventions of sysexits.h(3head):
- 0 (EX_OK)
Success.
- 64 (EX_USAGE)
Command line usage error, including a malformed ARGUMENTS object.
- 69 (EX_UNAVAILABLE)
Could not connect to PipeWire.
- 70 (EX_SOFTWARE)
Internal software error, including an error raised by the script.
SEE ALSO
wireplumber(1), wpctl(1), pipewire(1), sysexits.h(3head)
WirePlumber Documentation: https://pipewire.pages.freedesktop.org/wireplumber/