Elektra
0.8.24
|
This plugin is used to read configuration files that use hexadecimal values. All "hex-values" (see below) will be converted into decimal when Elektra reads values from the mounted file. When Elektra writes back to the file the converted values will be converted back and stored as before (0X
will be replaced with 0x
).
There are multiple ways you can signal to the hexnumber plugin, that a value should be converted:
unit/base
set to hex
it will always be interpreted as a hex-value. The plugin will also produce an error, if the value contained in such a Key does not start with 0x
(or 0X
).unit/base
is not present andtype
metadata is set to one of the recognized integer-types (default: byte
, short
, unsigned_short
, long
, unsigned_long
, long_long
, unsigned_long_long
)0x
(or 0X
) it will be interpreted as a hex-value./force
plugin configuration, see below) is enabled all values starting with 0x
(or 0X
) are considered hex-values.When mounting a backend with the hexnumber plugin, a few settings can be configured.
To enable forced conversion mode set /force
to any value. In forced conversion mode the plugin tries to convert ALL strings starting with 0x
(or 0X
) into decimal before passing the value on to the rest of Elektra. This can be useful for importing a configuration file that uses hexadecimal values into Elektra without writing a specification for the file.
NOTE: be careful when using this option, as any configuration value that contains invalid non-hexadecimal characters (i.e. does not match 0[xX][0-9A-Fa-f]+
) will result in an error.
/accept/types/#
, or one of the default types, will be converted to hexadecimal if the value starts with 0x
(or 0X
).kdb set user/tests/hexnumber/hex 0x1F kdb setmeta user/tests/hexnumber/hex type long
kdb get user/tests/hexnumber/hex #> 31
kdb set user/tests/hexnumber/dec 26 kdb setmeta user/tests/hexnumber/dec type long
kdb get user/tests/hexnumber/dec #> 26
kdb set user/tests/hexnumber/string value kdb setmeta user/tests/hexnumber/string type string
kdb get user/tests/hexnumber/string #> value
kdb set user/tests/hexnumber/hex2 0xF kdb setmeta user/tests/hexnumber/hex2 unit/base hex
kdb get user/tests/hexnumber/hex2 #> 15
kdb rm -r user/tests/hexnumber ```