Re:NixOps – Declarative cloud provisioning and deployment wi...
by zeisss on Sunday September 17, 2017 @10:20AM
(#15269705)
Is there good explanation anywhere of the syntax of those files? I tried getting into nix multiple times and was always put off by the lack of understandability of this.
[ Parent
| on HN ]
Re:NixOps – Declarative cloud provisioning and deployment wi...
by zimbatm on Sunday September 17, 2017 @11:05AM
(#15269934)
Nix is a bit like JSON + functions.
An object (called attrset in nix):
{ a = 3; b = 4; }
A list: [ 1 2 3 4 ];
A string: "hello"
A multi-line string: ''
multine
string
''
This defines a lambda with two arguments: a: b: a + b;
It's possible to pattern-match arguments. This accepts an attrset with keys a and b, and maps them to local variables: { a, b }: a + b;
There are some variations around that like `{ a ? 3 }:` `{ a }@attrs:` and `{ a, ... }`One special type is the path, which has it's own literal that starts with `./`
To load a file, the `import` keyword is being used. In most cases the whole file is a big lambda function, which gets returned by the import.
Once you know that you can start reading nixpkgs and learn about the building blocks to constructs packages.
Re:NixOps – Declarative cloud provisioning and deployment wi...
by FrozenCow on Sunday September 17, 2017 @12:05PM
(#15270238)
Also, for convenience, nested objects/attrsets can be shortened. For instance:
{
a = {
b = {
c = 3;
};
};
}
can be shortened to: {
a.b.c = 3;
}
This is used quite often in NixOS system configuration files. There you'll find lines like: services.openssh.enable = true;
For a list of all system configuration options that NixOS supports by default see (NixOS options)[https://nixos.org/nixos/options.html].
Re:NixOps – Declarative cloud provisioning and deployment wi...
by abhirag on Sunday September 17, 2017 @11:51AM
(#15270151)
I read Nix Pills and they were very informative -- https://nixos.org/nixos/nix-pills/
Re:NixOps – Declarative cloud provisioning and deployment wi...
by olejorgenb on Sunday September 17, 2017 @12:20PM
(#15270316)
Re:NixOps – Declarative cloud provisioning and deployment wi...
by lallysingh on Sunday September 17, 2017 @10:27AM
(#15269748)
The syntax is, by far, the most painful part. Change the drop-down to Nix then click on the manual. The website is hard to navigate in that way.
Re:NixOps – Declarative cloud provisioning and deployment wi...
by yaseer on Sunday September 17, 2017 @11:49AM
(#15270132)
https://learnxinyminutes.com/docs/nix/
Also includes links to the only other resources I found.