readconf
[](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
[](https://git.zhirov.kz/dlang/readconf)
[](https://github.com/AlexanderZhirov/readconf)
[](https://code.dlang.org/packages/readconf)
[](https://www.linux.org/)
Singleton for reading the configuration file required for your program.
## What can do
- Reading multiple configuration files
- Separation of parameters by sections
- Access to parameters and sections using keys and indexes
- Commenting on lines
You will get more detailed information on the [wiki](https://git.zhirov.kz/dlang/readconf/wiki).
## Quick start
The `settings.conf` file (see the [tests](tests/)):

Read `settings.conf` file:
```d
import readconf;
import std.stdio;
void main()
{
rc.read("./tests/settings.conf");
foreach (key, param; rc.sn.keys())
writefln("%s => %s", key, param);
writeln(rc.sn.key("value1"));
foreach (key, param; rc.sn("part2").keys())
writefln("%s => %s", key, param);
writeln(rc["part2"]["value1"]);
}
```
Result:
```
value1 => text without quotes
value2 => Yes!
value3 => value in apostrophes
value4 => 1000
value5 => 0.000
value7 => //path
value8 => "Hey!"
text without quotes
value1 => this value will be in the new section
value3 => good value!
this value will be in the new section
```
## Unittests
The unittests provide [examples](examples/) of configuration files and the `settings.conf` file located in the [tests](tests/):
```sh
Running bin/readconf-test-unittest
✓ test __unittest_L4_C1
✓ test __unittest_L106_C1
✓ test __unittest_L25_C1
✓ test __unittest_L51_C1
Summary: 4 passed, 0 failed in 7 ms
```
## DUB
Add a dependency on `"readconf": "~>0.3.0"`