$darkmode
Elektra 0.11.0
Plugin: blacklist

This plugin is a blacklist plugin that blocks the assignment of specific values to a key.

Usage

The plugin looks for the metadata array check/blacklist/# and reject all matching key values.

For example:

1 check/blacklist = #2
2 check/blacklist/#0 = water
3 check/blacklist/#1 = fire
4 check/blacklist/#2 = air

All values in the array will be rejected. The array indices don't have to be continuous, using e.g. only #1, #2 and #4 is also allowed. Just make sure check/blacklist is set to the largest index in the array.

Installation

See installation. The package is called libelektra5-extra.

Examples

1 sudo kdb mount blacklist.ecf /tests/blacklist blacklist
2 
3 # valid initial value + setup valid blacklist list
4 kdb set user:/tests/blacklist ""
5 kdb set user:/tests/blacklist/value water
6 kdb meta-set spec:/tests/blacklist/value check/blacklist '#2'
7 kdb meta-set spec:/tests/blacklist/value check/blacklist/#0 fire
8 kdb meta-set spec:/tests/blacklist/value check/blacklist/#1 air
9 kdb meta-set spec:/tests/blacklist/value check/blacklist/#2 cold/water
10 
11 # should succeed
12 kdb set user:/tests/blacklist/value earth
13 
14 # should fail
15 kdb set user:/tests/blacklist/value fire
16 # RET:5
17 # ERROR:C03200
18 
19 # should fail
20 kdb set user:/tests/blacklist/value air
21 # RET:5
22 # ERROR:C03200
23 
24 # should fail
25 kdb set user:/tests/blacklist/value cold/water
26 # RET:5
27 # ERROR:C03200

It is also possible to blacklist empty values:

1 kdb set user:/tests/blacklist/empty water
2 kdb meta-set spec:/tests/blacklist/empty check/blacklist '#0'
3 kdb meta-set spec:/tests/blacklist/empty check/blacklist/#0 ''
4 
5 # should succeed
6 kdb set user:/tests/blacklist/empty earth
7 
8 # should fail
9 kdb set user:/tests/blacklist/empty ''
10 # RET:5
11 # ERROR:C03200
12 
13 # Undo changes
14 kdb rm -r spec:/tests/blacklist
15 kdb rm -r user:/tests/blacklist || kdb rm -r system:/tests/blacklist
16 # sudo kdb umount spec:/tests/blacklist
17 sudo kdb umount /tests/blacklist