在nix中开发时,我通常使用builtins.trace
进行调试:
a = { foo = "bar"; ... more complex nested attrset ...};
builtins.trace a a;
nix-repl中的在复杂数据结构上使用:p a
也很难阅读。
然而,输出只是一行而没有任何格式化,对于复杂的数据结构,这几乎不可用于调试。
在nix中是否有一个漂亮的打印功能,它会做一些缩进并添加换行符?甚至更好的彩色输出?
我想看到这样的事情:
default = {
active = {
check_ssl = [
{
tags = [ "mycustomtag" ];
host = "kotalla.de";
ipv6 = false;
name = "ssl11";
}
{
tags = [ "mycustomtag" ];
host = "kotalla.de";
ipv6 = false;
name = "ssl2";
}
];
check_http = [
{
host = "kotalla.de";
port = 80;
url = "/foo";
contains = "Labor";
name = "http";
}
];
check_ssh = [
{
host = "mail.lastlog.de";
port = 20202;
name = "ssh";
}
];
};
答案 0 :(得分:0)
我们现在编写了自己的格式化程序:
答案 1 :(得分:0)
Nixfmt是一款流行的Nix代码格式化程序: https://github.com/Gabriel439/nixfmt
答案 2 :(得分:0)
https://github.com/haskell-nix/hnix/tree/50e63f80afa8323b25b692533e731eea641e56af#parse--print
<块引用>使用 hnix 解析文件并漂亮地打印结果:
hnix file.nix