mirror of https://git.jolheiser.com/nixfig.git
48 lines
771 B
Markdown
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)
|