summary refs log tree commit diff
path: root/lib/modules.nix
Commit message (Collapse)AuthorAge
...
* Add comments about the module system interfaceShea Levy2015-03-12
| | | | | | | Ideally the module system could be configured pretty much completely by the contents of the modules themselves, so add comments about avoiding complicating it further and possibly removing now-redundant configurability from the existing interface.
* evalModules: Add internal option for the check argumentShea Levy2015-03-12
|
* nixos: Don't evaluate twice to get the value of config.nixpkgsShea Levy2015-03-12
|
* modules.nix: Generate the extra argument set from the configurationShea Levy2015-03-12
| | | | | | | This allows for module arguments to be handled modularly, in particular allowing the nixpkgs module to handle the nixpkgs import internally. This creates the __internal option namespace, which should only be added to by the module system itself.
* Move property processing, type checking, and merge code into a functionShea Levy2015-03-12
| | | | | | This makes the relationship between property types clearer, and more importantly will let option types parameterized by other option types reuse the code for delegated type checking and merging.
* modules: Extract mkAliasDefinition from the rename.nix NixOS module.Nicolas B. Pierron2014-12-22
|
* nixos: Try to show an helpful message when the user sets config. or options.Luca Bruno2014-11-01
| | | | Feel free to improve or remove :-)
* Replace hasAttr/getAttr calls with the ? and . operatorsEelco Dolstra2014-10-05
| | | | | For NixOS evaluation, this gives a ~21% reduction in the number of values allocated and a ~4% speedup. It's also more readable.
* lib: Use arithmetic operators rather than builtins.add etc.Eelco Dolstra2014-10-05
|
* Merge options having the submodule type.Nicolas Pierron2014-09-07
| | | | | | | | | | 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.
* Annotate option-set options with the file in which they are declared.Nicolas Pierron2014-09-07
| | | | | | 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
* Add error an message to prevent use of useless submodules.Nicolas Pierron2014-08-29
|
* minor fix in documentationJan Malakhovski2014-06-26
| | | | Signed-off-by: Domen Kožar <domen@dev.si>
* Re-introduce (marked as obsolete) mkStrict function, to allow old nixops ↵Rob Vermaas2014-05-05
| | | | deployments to keep working.
* Bring back mkOrderEelco Dolstra2014-03-30
|
* Pass lib to modulesShea Levy2014-02-11
| | | | Since mkOption, types, etc. are defined there, lib is really part of the interface
* Add some primops to libEelco Dolstra2013-11-12
|
* Fix backward compatibility with Nix < 1.6Eelco Dolstra2013-10-30
| | | | | "with" used to be less lazy, so don't rely on that. Also don't use the "<" operator.
* Show correct position info for errors in submodulesEelco Dolstra2013-10-30
| | | | | | | | 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.
* Export only the files of the active definitionsEelco Dolstra2013-10-30
|
* Fix environment.checkConfigurationOptionsEelco Dolstra2013-10-29
| | | | | | This requires delaying the declaredness check until later, otherwise we get an infinite recursion querying environment.checkConfigurationOptions.
* fixMergeModules shouldn't check whether options are declaredEelco Dolstra2013-10-29
|
* Add fixMergeModules back inEelco Dolstra2013-10-29
| | | | NixOps uses it.
* Support module keys that are pathsEelco Dolstra2013-10-29
|
* Add a priority level for overrides in VM testsEelco Dolstra2013-10-29
| | | | | | | | | 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
* Fix nixos-optionEelco Dolstra2013-10-28
| | | | | In particular, it no longer produces an "infinite recursion" error when run with no arguments.
* Show precise error messages in option merge failuresEelco Dolstra2013-10-28
| | | | | | | | | | | | | | 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.
* Support mkOverride in non-leaf nodesEelco Dolstra2013-10-28
|
* Allow imports in plain modulesEelco Dolstra2013-10-28
|
* Remove debug codeEelco Dolstra2013-10-28
|
* Fix evaluation of environment.variablesEelco Dolstra2013-10-28
|
* Fix NixOps evaluationEelco Dolstra2013-10-28
|
* Fix option renamingEelco Dolstra2013-10-28
|
* Check for undeclared optionsEelco Dolstra2013-10-28
|
* Show error locations in submodulesEelco Dolstra2013-10-28
|
* Fix manual generationEelco Dolstra2013-10-28
|
* Fix commentEelco Dolstra2013-10-28
|
* Inline some functions on the critical pathEelco Dolstra2013-10-28
|
* Reduce the number of allocations a bitEelco Dolstra2013-10-28
|
* Keep position information for option declarations and definitionsEelco Dolstra2013-10-28
| | | | | | | 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.
* Big cleanup of the NixOS module systemEelco Dolstra2013-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Small cleanupEelco Dolstra2013-10-24
|
* Move pkgs/lib/ to lib/Eelco Dolstra2013-10-10