Elektra: Plugin: list

Elektra 0.8.24

Plugin: list

- infos = Information about the list plugin is in keys below
- infos/author = Thomas Waser thoma.nosp@m.s.wa.nosp@m.ser@l.nosp@m.ibel.nosp@m.ektra.nosp@m..org
- infos/licence = BSD
- infos/needs =
- infos/provides =
- infos/placements = presetstorage pregetstorage postgetstorage precommit postcommit prerollback postrollback
- infos/status = maintained unittest nodep libc configurable global
- infos/description = delegates work to a list of plugins

The List plugin can be used everywhere a list of plugins is required. It takes a list of plugins + configurations for every placement it's placed in and loads them.

## Configuration

`placements/set`

Specifies the set-placements for the list plugin, e.g. "presetstorage precommit"

`placements/get`

Specifies the get-placements for the list plugin.

`placements/error`

Specifies the error-placements for the list plugin.

`config/`

Common config for all plugins.

`plugins/#`

The name of the plugin to load.

`plugins/#/handle`

Internal handle of already loaded plugin. Useful when loading plugins at run-time with `elektraPluginOpen()`. Do not set permanently (e.g. with `kdb set`).

`plugins/#/placements/set`

A list of set-placements for the plugin. Same for "get" and "error"

`plugins/#/config/`

Plugin specific config.

## Example

    placements/get = "postgetstorage"
    config/cut = "will/be/overridden/for/plugin/#0"
    plugins/#0 = "rename"
    plugins/#0/placements   plugin placements
    plugins/#0/placements/get = "postgetstorage"
    plugins/#0/config   pluginconfig goes here
    plugins/#0/config/cut = "will/be/stripped"
    plugins/#1 = "keytometa"
    plugins/#1/placements
    plugins/#1/placements/get = "postgetstorage"
    plugins/#2 = "enum"
    plugins/#2/placements
    plugins/#2/placements/get = "postgetstorage"

would have the callstack:

1. `list->kdbGet`
   1. `rename->kdbGet`
   2. `keytometa->kdbGet`
   3. `enum->kdbGet`