$darkmode
Elektra 0.11.0
Plugin: range
  • infos = Information about the range 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/recommends =
  • infos/placements = presetstorage postgetstorage
  • infos/status = maintained conformant compatible coverage specific unittest tested libc preview unfinished
  • infos/metadata = check/range check/type type
  • infos/description = tests if a value is within a given range

Introduction

The range plugin checks if a Key's value is within a given range.

Installation

See installation. The package is called libelektra5-experimental.

Usage

  • The plugin checks every Key in the KeySet having a metakey check/range.
  • For these keys, it checks whether the key value is within the specified range.
  • check/range can contain either:
    1. a single range with the syntax [-]min-[-]max
    2. or a list of ranges or values separated by ,
  • Metakey check/type can be used to specify the data type. If not specified, metakey type will be used as fallback. If both are unspecified or unsupported, the type is assumed to be long long.

Possible values:

  • short, long, long long

    for signed integer values

  • unsigned short, unsigned long, unsigned long long

    for unsigned integer values

  • float, double, long double

    for floating point values

  • HEX

    for hexadecimal values

  • char

    for characters

Dependencies

None.

Examples

# Backup-and-Restore:/tests/range
sudo kdb mount range.ecf /tests/range range dump
# should succeed
kdb set user:/tests/range/value 5
kdb meta-set spec:/tests/range/value check/range "1-10"
# RET: 0
# should fail
kdb set user:/tests/range/value 11
# RET:5
# should also fail
kdb set user:/tests/range/value "\-1"
# RET:5
# we can also allow only individual values: (using the --force flag, as the current value of 5 would not be allowed under the new policy)
kdb meta-set -f spec:/tests/range/value check/range "1,2,4,8"
kdb set user:/tests/range/value 7
# RET:5
kdb set user:/tests/range/value 2
# RET:0
kdb rm -r user:/tests/range
sudo kdb umount /tests/range

Limitations

None.