* 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'.
This commit is contained in:
Eelco Dolstra 2009-05-15 12:35:23 +00:00
parent e42975490f
commit d407d572fd
9 changed files with 118 additions and 26 deletions

View file

@ -0,0 +1 @@
Str("foo 22 80 itchyxac",[])

View file

@ -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"

View file

@ -0,0 +1,4 @@
{
services.ssh.port = 22;
services.ssh.port = 23;
}

View file

@ -0,0 +1,4 @@
{
services.ssh = { enable = true; };
services.ssh.port = 23;
}

View file

@ -0,0 +1,4 @@
{
services.ssh.port = 23;
services.ssh = { enable = true; };
}