nixfig/README.md

48 lines
771 B
Markdown

# nixfig
Read a nix file as a config.
Essentially just wraps `nix eval (--json) --expr`.
Allows parsing the following:
```nix
let
user = "jolheiser";
in {
log = {
level = "warn";
# Name the log file after the user....for reasons
file = "${user}.log";
};
http = {
host = "0.0.0.0";
port = 1234;
# Make user an admin, but also make a generic admin user
admins = [user "admin"];
};
}
```
Into a struct like:
```go
type Config struct {
Log struct {
Level string // warn
File string // jolheiser.log
}
HTTP struct {
Host string // 0.0.0.0
Port int // 1234
Admins []string // [jolheiser admin]
}
}
```
It can also marshal a struct into a valid (albeit minified) nix expression.
## License
[MIT](LICENSE)