diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2009-05-15 12:35:23 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2009-05-15 12:35:23 +0000 |
commit | d407d572fdc72f4eb14cc0f37d7d61446425b663 (patch) | |
tree | 039d1409f7bdd30c2e953cf894b06b858db3a6f3 /tests | |
parent | e42975490fa96e811c9fd80435ce20c26f8603f8 (diff) |
* Some syntactic sugar for attribute sets: allow {x.y.z = ...;} as a
shorthand for {x = {y = {z = ...;};};}. This is especially useful
for NixOS configuration files, e.g.
{
services = {
sshd = {
enable = true;
port = 2022;
};
};
}
can now be written as
{
services.sshd.enable = true;
services.sshd.port = 2022;
}
However, it is currently not permitted to write
{
services.sshd = {enable = true;};
services.sshd.port = 2022;
}
as this is considered a duplicate definition of `services.sshd'.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lang/eval-okay-attrs3.exp | 1 | ||||
-rw-r--r-- | tests/lang/eval-okay-attrs3.nix | 22 | ||||
-rw-r--r-- | tests/lang/parse-fail-dup-attrs-4.nix | 4 | ||||
-rw-r--r-- | tests/lang/parse-fail-dup-attrs-5.nix | 4 | ||||
-rw-r--r-- | tests/lang/parse-fail-dup-attrs-6.nix | 4 |
5 files changed, 35 insertions, 0 deletions
diff --git a/tests/lang/eval-okay-attrs3.exp b/tests/lang/eval-okay-attrs3.exp new file mode 100644 index 000000000..d2c7555c1 --- /dev/null +++ b/tests/lang/eval-okay-attrs3.exp @@ -0,0 +1 @@ +Str("foo 22 80 itchyxac",[]) diff --git a/tests/lang/eval-okay-attrs3.nix b/tests/lang/eval-okay-attrs3.nix new file mode 100644 index 000000000..f29de11fe --- /dev/null +++ b/tests/lang/eval-okay-attrs3.nix @@ -0,0 +1,22 @@ +let + + config = + { + services.sshd.enable = true; + services.sshd.port = 22; + services.httpd.port = 80; + hostName = "itchy"; + a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z = "x"; + foo = { + a = "a"; + b.c = "c"; + }; + }; + +in + if config.services.sshd.enable + then "foo ${toString config.services.sshd.port} ${toString config.services.httpd.port} ${config.hostName}" + + "${config.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z}" + + "${config.foo.a}" + + "${config.foo.b.c}" + else "bar" diff --git a/tests/lang/parse-fail-dup-attrs-4.nix b/tests/lang/parse-fail-dup-attrs-4.nix new file mode 100644 index 000000000..77417432b --- /dev/null +++ b/tests/lang/parse-fail-dup-attrs-4.nix @@ -0,0 +1,4 @@ +{ + services.ssh.port = 22; + services.ssh.port = 23; +} diff --git a/tests/lang/parse-fail-dup-attrs-5.nix b/tests/lang/parse-fail-dup-attrs-5.nix new file mode 100644 index 000000000..f4b9efd0c --- /dev/null +++ b/tests/lang/parse-fail-dup-attrs-5.nix @@ -0,0 +1,4 @@ +{ + services.ssh = { enable = true; }; + services.ssh.port = 23; +} diff --git a/tests/lang/parse-fail-dup-attrs-6.nix b/tests/lang/parse-fail-dup-attrs-6.nix new file mode 100644 index 000000000..ae6d7a769 --- /dev/null +++ b/tests/lang/parse-fail-dup-attrs-6.nix @@ -0,0 +1,4 @@ +{ + services.ssh.port = 23; + services.ssh = { enable = true; }; +} |