summaryrefslogtreecommitdiffstats
path: root/lib/modules.nix
AgeCommit message (Collapse)Author
2014-11-01nixos: Try to show an helpful message when the user sets config. or options.Luca Bruno
Feel free to improve or remove :-)
2014-10-05Replace hasAttr/getAttr calls with the ? and . operatorsEelco Dolstra
For NixOS evaluation, this gives a ~21% reduction in the number of values allocated and a ~4% speedup. It's also more readable.
2014-10-05lib: Use arithmetic operators rather than builtins.add etc.Eelco Dolstra
2014-09-07Merge options having the submodule type.Nicolas Pierron
Now we should be able to have multiple declaration of the same option as long as all declarations have the same type. If the type has a sub module, then it is merged with the submodules of other declarations, as done with option sets. In addition, the file of the option declaration is passed into the submodule, such as the documentation can display it correctly.
2014-09-07Annotate option-set options with the file in which they are declared.Nicolas Pierron
This modification improves NixOS manual by listing in which file, each submodule option is declared. This solve the issue that files are not reported when looking at options such as fileSystems.<name?>.neededForBoot
2014-08-29Add error an message to prevent use of useless submodules.Nicolas Pierron
2014-06-26minor fix in documentationJan Malakhovski
Signed-off-by: Domen Kožar <domen@dev.si>
2014-05-05Re-introduce (marked as obsolete) mkStrict function, to allow old nixops ↵Rob Vermaas
deployments to keep working.
2014-03-30Bring back mkOrderEelco Dolstra
2014-02-11Pass lib to modulesShea Levy
Since mkOption, types, etc. are defined there, lib is really part of the interface
2013-11-12Add some primops to libEelco Dolstra
2013-10-30Fix backward compatibility with Nix < 1.6Eelco Dolstra
"with" used to be less lazy, so don't rely on that. Also don't use the "<" operator.
2013-10-30Show correct position info for errors in submodulesEelco Dolstra
E.g. The unique option `fileSystems./.device' is defined multiple times, in `/etc/nixos/configuration.nix' and `/etc/nixos/foo.nix'. This requires passing file/value tuples to the merge functions.
2013-10-30Export only the files of the active definitionsEelco Dolstra
2013-10-29Fix environment.checkConfigurationOptionsEelco Dolstra
This requires delaying the declaredness check until later, otherwise we get an infinite recursion querying environment.checkConfigurationOptions.
2013-10-29fixMergeModules shouldn't check whether options are declaredEelco Dolstra
2013-10-29Add fixMergeModules back inEelco Dolstra
NixOps uses it.
2013-10-29Support module keys that are pathsEelco Dolstra
2013-10-29Add a priority level for overrides in VM testsEelco Dolstra
Now that overriding fileSystems in qemu-vm.nix works again, it's important that the VM tests that add additional file systems use the same override priority. Instead of using the same magic constant everywhere, they can now use mkVMOverride. http://hydra.nixos.org/build/6695561
2013-10-28Fix nixos-optionEelco Dolstra
In particular, it no longer produces an "infinite recursion" error when run with no arguments.
2013-10-28Show precise error messages in option merge failuresEelco Dolstra
For instance, if time.timeZone is defined multiple times, you now get the error message: error: user-thrown exception: The unique option `time.timeZone' is defined multiple times, in `/etc/nixos/configurations/misc/eelco/x11vnc.nix' and `/etc/nixos/configuration.nix'. while previously you got: error: user-thrown exception: Multiple definitions of string. Only one is allowed for this option. and only an inspection of the stack trace gave a clue as to what option caused the problem.
2013-10-28Support mkOverride in non-leaf nodesEelco Dolstra
2013-10-28Allow imports in plain modulesEelco Dolstra
2013-10-28Remove debug codeEelco Dolstra
2013-10-28Fix evaluation of environment.variablesEelco Dolstra
2013-10-28Fix NixOps evaluationEelco Dolstra
2013-10-28Fix option renamingEelco Dolstra
2013-10-28Check for undeclared optionsEelco Dolstra
2013-10-28Show error locations in submodulesEelco Dolstra
2013-10-28Fix manual generationEelco Dolstra
2013-10-28Fix commentEelco Dolstra
2013-10-28Inline some functions on the critical pathEelco Dolstra
2013-10-28Reduce the number of allocations a bitEelco Dolstra
2013-10-28Keep position information for option declarations and definitionsEelco Dolstra
Also, when an option definition fails to type-check, print the file name of the module in which the offending definition occurs, e.g. error: user-thrown exception: The option value `boot.loader.grub.version' in `/etc/nixos/configuration.nix' is not a integer.
2013-10-28Big cleanup of the NixOS module systemEelco Dolstra
The major changes are: * The evaluation is now driven by the declared options. In particular, this fixes the long-standing problem with lack of laziness of disabled option definitions. Thus, a configuration like config = mkIf false { environment.systemPackages = throw "bla"; }; will now evaluate without throwing an error. This also improves performance since we're not evaluating unused option definitions. * The implementation of properties is greatly simplified. * There is a new type constructor "submodule" that replaces "optionSet". Unlike "optionSet", "submodule" gets its option declarations as an argument, making it more like "listOf" and other type constructors. A typical use is: foo = mkOption { type = type.attrsOf (type.submodule ( { config, ... }: { bar = mkOption { ... }; xyzzy = mkOption { ... }; })); }; Existing uses of "optionSet" are automatically mapped to "submodule". * Modules are now checked for unsupported attributes: you get an error if a module contains an attribute other than "config", "options" or "imports". * The new implementation is faster and uses much less memory.
2013-10-24Small cleanupEelco Dolstra
2013-10-10Move pkgs/lib/ to lib/Eelco Dolstra