2023-03-27 21:17:46 +00:00
|
|
|
<p align="center">
|
|
|
|
<img src="img/logo.png" width=320>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h1 align="center">readconf</h1>
|
2023-03-23 15:10:56 +00:00
|
|
|
|
2023-03-29 15:43:32 +00:00
|
|
|
[![license](https://img.shields.io/github/license/AlexanderZhirov/readconf.svg?sort=semver&style=for-the-badge&color=green)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
|
2023-03-29 16:41:43 +00:00
|
|
|
[![main](https://img.shields.io/badge/dynamic/json.svg?label=git.zhirov.kz&style=for-the-badge&url=https://git.zhirov.kz/api/v1/repos/dlang/readconf/tags&query=$[0].name&color=violet&logo=D)](https://git.zhirov.kz/dlang/readconf)
|
|
|
|
[![githab](https://img.shields.io/github/v/tag/AlexanderZhirov/readconf.svg?sort=semver&style=for-the-badge&color=blue&label=github&logo=D)](https://github.com/AlexanderZhirov/readconf)
|
|
|
|
[![dub](https://img.shields.io/dub/v/readconf.svg?sort=semver&style=for-the-badge&color=orange&logo=D)](https://code.dlang.org/packages/readconf)
|
|
|
|
[![linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)](https://www.linux.org/)
|
2023-03-29 15:43:32 +00:00
|
|
|
|
2023-03-23 15:10:56 +00:00
|
|
|
Singleton for reading the configuration file required for your program.
|
|
|
|
|
2023-03-26 01:00:06 +00:00
|
|
|
## What can do
|
|
|
|
|
2023-03-30 06:58:28 +00:00
|
|
|
- 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).
|
2023-03-26 01:00:06 +00:00
|
|
|
|
2023-03-23 23:26:02 +00:00
|
|
|
## Quick start
|
2023-03-23 15:10:56 +00:00
|
|
|
|
2023-03-23 23:26:02 +00:00
|
|
|
The `settings.conf` file (see the [tests](tests/)):
|
|
|
|
|
|
|
|
![matches.png](img/matches.png)
|
2023-03-23 15:10:56 +00:00
|
|
|
|
2023-03-30 06:58:28 +00:00
|
|
|
Read `./tests/settings.conf` file:
|
2023-03-23 15:10:56 +00:00
|
|
|
|
|
|
|
```d
|
|
|
|
import readconf;
|
|
|
|
import std.stdio;
|
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
2023-03-30 06:58:28 +00:00
|
|
|
rc.read("./tests/settings.conf");
|
2023-03-23 15:10:56 +00:00
|
|
|
|
2023-03-26 00:26:31 +00:00
|
|
|
foreach (key, param; rc.sn.keys())
|
2023-03-23 15:10:56 +00:00
|
|
|
writefln("%s => %s", key, param);
|
|
|
|
|
2023-03-26 00:26:31 +00:00
|
|
|
writeln(rc.sn.key("value1"));
|
|
|
|
|
|
|
|
foreach (key, param; rc.sn("part2").keys())
|
|
|
|
writefln("%s => %s", key, param);
|
|
|
|
|
2023-03-30 06:58:28 +00:00
|
|
|
writeln(rc["part2"]["value1"]);
|
2023-03-23 15:10:56 +00:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
Result:
|
|
|
|
|
|
|
|
```
|
2023-03-26 00:26:31 +00:00
|
|
|
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
|
2023-03-23 15:10:56 +00:00
|
|
|
```
|
2023-03-26 01:00:06 +00:00
|
|
|
|
2023-03-30 06:58:28 +00:00
|
|
|
## DUB
|
2023-03-26 01:00:06 +00:00
|
|
|
|
2023-03-30 06:58:28 +00:00
|
|
|
Add a dependency on `"readconf": "~>0.3.0"`
|