mirror of https://git.jolheiser.com/nixfig.git
e902c130a5
Signed-off-by: jolheiser <git@jolheiser.com> |
||
---|---|---|
testdata | ||
.gitignore | ||
LICENSE | ||
README.md | ||
flake.lock | ||
flake.nix | ||
go.mod | ||
go.mod.sri | ||
go.sum | ||
nixfig.go | ||
nixfig_test.go |
README.md
nixfig
Read a nix file as a config.
Essentially just wraps nix eval (--json) --expr
.
Allows parsing the following:
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:
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.