canfigger v0.3.x Lightweight config file parser library

Loading...
Searching...
No Matches
canfigger

![codeql-badge] ![actions-c-badge] ![cirrus-badge]

# canfigger v0.3.0

Canfigger is a lightweight C language library designed to parse configuration files. It provides functionality to read them and represent their contents as a linked list of key-value pairs, along with associated attributes for each pair.

- website/API documentation and examples
- source on GitHub
- releases

## Format

The following config file example represents the format handled by canfigger:

foo = bar
blue = color, shiny
statement = hello world, obvious
# An option with no value or attributes
FeatureFooEnabled
# key, value with 2 attributes
dhcp-range = 192.168.0.50, 192.168.0.150, 12
# key, value with 9 attributes
solar_system = sun, Mercury, Venus, Earth, Mars, Jupiter, Saturn, Neptune, Uranus, Pluto

You can change the attribute delimiter character by passing it as the second argument:

    canfigger_parse_file(filename_ptr, ':');

## Dependencies

None

## Building

    meson setup _build
    cd _build
    ninja

For configuration options, use `meson configure` (see the Meson docs for detailed usage).

## Tests

    meson test (-v)

## Example program

An example program will be built when you run `ninja`. It will read `examplerc` in the source root directory. If you want to try it with a different config file, give `example` the name of a config file as an argument.

## Using canfigger in your project

If canfigger is not available for your operating system or distribution, you can copy the required sources (and the LICENSE file) into your project and add them to your build system. The line `include <config.h>` from the top of the .c file will need to be removed, as it is normally generated during the Meson setup and only contains version information.

Alternatively, if your project uses Meson, you can add a wrap file for canfigger in your 'subprojects' directory.

## Projects using canfigger

- rmw