text/gemini
# No more parsing
It just occurred to me, that environment variables are not necessary form valid shell variable name. For example,
```
$ env foo.bar=12 env | grep foo.bar
foo.bar=12
```
Accessing variables with such unusual names is more elaborate in shell -- you have to use `printenv(1)`. In general-purpose languages, like C, Perl or Python there is no difference.
It means, that we could replace ini files with envdirs. For example, following config file
```
[section1]
foo = 12
bar = 13
[section2]
foo = 42
```
could be easily represented with following config directory, ready for use by `envdir(1)` from daemontools or `chpst -e` from runit suite.
```
/tmp/conf/
|-- section1.bar
|-- section1.foo
`-- section2.foo
```
It is sad, that git did not follow this way, and decided to use ini parser instead. Due its technical supremacy, Git project was able to do anything in non-convention way and it would be accepted and followed.
This content has been proxied by September (ba2dc).