|
Elektra
0.8.18
|
This is a plugin reading and writing json files using the library yail
The plugin was tested with yajl version 1.0.8-1 from Debian 6 and yajl version 2.0.4-2 from Debian 7.
Examples of files which are used for testing can be found below the folder in "src/plugins/yajl/examples".
The json grammar can be found here.
A validator can be found here.
Supports every KeySet except when arrays are intermixed with other keys. Has only limited support for metadata.
libyajl-dev (version 1 and 2 should work)My metadata type the used types can be chosen:
string: The JSON string type.boolean: The JSON boolean type (true or false)double: For JSON numbers.If no metadata type is given, the type is either:
null on binary null-keystring otherwiseAny other type/value will still be treated as string, but the warning #78 will be added because of the potential data loss.
In json it is possible to have empty arrays and objects. In Elektra this is mapped using the special names
###empty_array
and
___empty_map
Arrays are mapped to Elektra's array convention #0, #1,..
Because of these potential problems a type checker, comments filter and directory value filter are highly recommended.
This plugin was specifically designed and tested for the OpenICC_device_config_DB although it is of course not limited to it.
Mount the plugin:
kdb mount --resolver=resolver_fm_xhp_x color/settings/openicc-devices.json /org/freedesktop/openicc yajl rename cut=org/freedesktop/openicc
or:
kdb mount-openicc
Then you can copy the OpenICC_device_config_DB.json to systemwide or user config, e.g.
cp src/plugins/yajl/examples/OpenICC_device_config_DB.json /etc/xdg
cp src/plugins/yajl/examples/OpenICC_device_config_DB.json ~/.config
kdb ls system/org/freedesktop/openicc
prints out then all device entries available in the config
kdb get system/org/freedesktop/openicc/device/camera/0/EXIF_manufacturer
prints out "Glasshuette" with the example config in souce
You can export the whole system openicc config to ini with:
kdb export system/org/freedesktop/openicc simpleini > dump.ini
or import it:
kdb import system/org/freedesktop/openicc ini < dump.ini
1.8.8