Hi Michael, On Sun, Feb 22, 2015 at 2:45 PM, Michael Alan Dorman <mdor...@jaunder.io> wrote: > All the documentation I can find about overriding things seems focuses > on packages, but what I'm interested in overriding is the systemd > pre-start-script. I tried what seemed obvious: > > { config, ... }: > > let > cfg = config.services.couchdb; > > in { > systemd.services.couchdb.preStart = > '' > […] > ''; > } > > But that appears to have had an *additive* effect---that is, a copy of > the modified text appears *after* the existing, non-working, definition.
First, you can double check the content of this option without building a system, with $ nixos-option systemd.services.couchdb.preStart The *additive* effect is a feature, which is used in many cases, such as defining "fileSystems", "systemd.services", and many more. This gives the ability to have a module system where multiple modules can register them-self concurrently in other modules. You can override other modules definitions, almost as you expected, by using "mkOverride <int> <value>", which has a convenient short-cut named "mkForce <value>", with the "force" int-priority. This way, you mention that one definition override all the others, as thus ignore all the definitions with a default priority. These properties are briefly described in the Manual [1], and in the Wiki [2]. [1] https://nixos.org/nixos/manual/sec-writing-modules.html#sec-option-definitions [2] https://nixos.org/wiki/NixOS:Modules -- Nicolas Pierron http://www.linkedin.com/in/nicolasbpierron - http://nbp.name/ _______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev