Silvan Mosberger
de0c11241f
lib/tests/filesystem.sh: Check success and failure separately
2023-06-01 18:07:33 +02:00
Silvan Mosberger
04db3589a8
lib.filesystem.pathType: Fix tests for Nix >= 2.14
2023-05-25 22:39:28 +02:00
Robert Hensing
a344acdc7f
Merge pull request #224834 from tweag/pathType-and-co
...
Improvements to pathType, pathIsDirectory and pathIsRegularFile
2023-05-23 09:32:01 +02:00
Silvan Mosberger
d064d972f0
lib.filesystem.pathType: Improve error for non-existent paths
...
Previously it would fail with
error: attribute 'nonexistent' missing
at nixpkgs/lib/filesystem.nix:29:10:
28| if dirOf path == path then "directory"
29| else (readDir (dirOf path)).${baseNameOf path};
| ^
30|
2023-05-22 14:13:57 +02:00
Silvan Mosberger
bb6eab0bdb
lib.filesystem.pathType: Fix for filesystem root argument
...
Previously this function couldn't handle / being passed, it would throw
an error:
error: attribute '' missing
at nixpkgs/lib/filesystem.nix:24:20:
23| */
24| pathType = path: (readDir (dirOf path)).${baseNameOf path};
| ^
25|
Consequently this also fixes the
lib.filesystem.{pathIsDirectory,pathIsRegularFile} functions.
2023-05-22 14:13:57 +02:00
Silvan Mosberger
a1dedc908d
lib.filesystem.pathType and co.: Add tests
...
Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
2023-05-22 14:13:45 +02:00
Naïm Favier
ac9915b1ea
lib/tests: add mkPackageOption tests
2023-05-20 18:23:41 +02:00
Robert Hensing
eab660d91e
lib.modules: configurationClass -> class
...
This simplifies the documentation. `configuration` is implied by `_type`.
2023-05-06 18:32:59 +02:00
Robert Hensing
89491bef8d
lib.modules: in evalModules return move _module.class -> configurationClass
2023-05-06 18:32:59 +02:00
Robert Hensing
fd88c79418
lib.modules: Change class declaration in module to _class
2023-05-06 18:32:59 +02:00
Robert Hensing
7459c02495
lib/tests/modules.sh: Add submodule + class tests
2023-05-06 18:32:59 +02:00
Robert Hensing
8054785157
lib/modules: Move class out of specialArgs
2023-05-06 18:32:58 +02:00
Robert Hensing
84b1b01702
lib/modules: Only interpret class declaration in non-shorthand mode
...
This is to avoid stealing keys from submodules. `class` might be
common enough that reinterpreting existing `class` attributes in
configurations as a declaration leads to fairly widespread problems.
2023-05-06 18:29:04 +02:00
Robert Hensing
9714487f74
lib/modules: Explain that a configuration can't be loaded as a module
2023-05-06 18:29:04 +02:00
Robert Hensing
2e689d58cb
lib/modules: Improve error when a configuration is imported
...
This is appears to be a fairly common mistake for beginners who want
to build larger things from the system configurations, such as NixOps
networks, etc. Further explanation seems appropriate.
2023-05-06 18:29:03 +02:00
Robert Hensing
58f385f680
lib/modules: Check against importing things with a _type
2023-05-06 18:29:03 +02:00
Robert Hensing
b8ff2807a2
lib/modules: Add class concept to check imports
...
This improves the error message when an incompatible module is
imported.
2023-05-06 18:29:03 +02:00
Robert Hensing
e7e64233c9
lib/tests/modules.sh: Unload implicit modules
...
I had some trouble understanding this. Let's try to keep new tests
a bit more stateless and explicit.
2023-05-06 18:22:50 +02:00
toonn
e31c8b22dd
Merge pull request #223407 from AngryAnt/toplist-path
...
lib.toPlist: Add support for path values
2023-05-05 21:15:23 +02:00
Matthieu Coudron
8670e496ff
Merge pull request #227714 from ony/feature/generateLuarocksConfig-toLua
...
lua.lib: use toLua in generateLuarocksConfig
2023-05-01 18:53:22 +02:00
Mykola Orliuk
7287c0e076
lib.generators.toLua: asBindings option
...
Allows to generate code block for setting of global variables
2023-04-29 19:26:35 +02:00
Weijia Wang
b2ef7956b6
Merge pull request #227560 from jackyliu16/loongnix-commit
...
lib.platforms.loongarch64: init
2023-04-28 13:21:42 +03:00
jackyliu16
edcad332d9
lib.platforms.loongarch64: init
2023-04-27 20:04:30 +03:00
Mykola Orliuk
e9b416168a
lib.generators.toLua: allow disabling multiline
2023-04-23 19:46:14 +02:00
Mykola Orliuk
4ec4c6fda9
lib/generators: add toLua/mkLuaInline
...
Suitable to simplify Lua-based configurations like neovim-lspconfig that
might need to interpolate Nix package paths.
2023-04-23 01:07:58 +02:00
Emil "AngryAnt" Johansen
e932e98437
lib.toPlist: keep test output in external files for their tab indents
2023-03-27 19:25:52 +02:00
Emil "AngryAnt" Johansen
63a8c43d09
lib.toPlist: basic test coverage
2023-03-27 19:25:38 +02:00
Naïm Favier
8751764236
lib/modules: better error for invalid option declarations
...
Make `byName` aware of whether it's processing options or config to give
slightly more accurate error messages.
2023-03-22 12:37:28 +01:00
hsjobeki
15a8d05ba5
init: lib.foldlAttrs
...
- provide comprehensive example
- add unit test
2023-03-11 10:42:00 +01:00
Robert Hensing
6b79fe8cdc
Merge pull request #211855 from hercules-ci/lib-modules-disabledModules-module-with-key
...
lib/modules: Allow an "anonymous" module with key in disabledModules
2023-03-09 16:16:37 +01:00
Patrick Widmer
7089294f10
strings: add escapeQuery for url encoding
2023-03-03 20:48:55 +01:00
Robert Hensing
118bdf25a6
lib/modules: Allow an "anonymous" module with key in disabledModules
...
This makes the following work
disabledModules = [ foo.nixosModules.bar ];
even if `bar` is not a path, but rather a module such as
{ key = "/path/to/foo#nixosModules.bar"; config = ...; }
By supporting this, the user will often be able to use the same syntax
for both importing and disabling a module. This is becoming more relevant
because flakes promote the use of attributes to reference modules. Not
all of these modules in flake attributes will be identifiable, but with
the help of a framework such as flake-parts, these attributes can be
guaranteed to be identifiable (by outPath + attribute path).
2023-03-01 15:03:44 +01:00
Silvan Mosberger
0a60663e67
Merge pull request #206611 from h7x4/lib-lists-add-repeat
...
lib.lists: add `replicate`
2023-02-07 06:16:09 +01:00
h7x4
7c4abbf80e
lib.lists: add replicate
...
`replicate` returns n copies of an element as a list.
Co-Authored-By: Silvan Mosberger <contact@infinisil.com>
2023-02-06 20:40:47 +01:00
Silvan Mosberger
50e4dbf35b
Merge pull request #205557 from ncfavier/concatLines
...
lib/strings: add `concatLines`
2023-01-31 18:05:53 +01:00
Naïm Favier
0288ee587f
maintainers: clarify what fields are required
2023-01-27 18:05:28 +01:00
Naïm Favier
93dc2de29a
maintainers: disallow noreply.github.com
emails
2023-01-27 18:05:28 +01:00
Naïm Favier
4e39849611
maintainers: make email
optional
...
Not giving an email address is fine as long as the maintainer is
reachable through other means, such as GitHub or Matrix.
2023-01-27 18:04:20 +01:00
John Ericson
c1071e7804
Merge pull request #211622 from alyssais/valgrind-platforms
...
valgrind: make meta.platforms more accurate
2023-01-19 15:43:22 -05:00
Alyssa Ross
6d165a9474
lib.platforms.s390x: init
2023-01-19 17:43:50 +00:00
Alyssa Ross
541a2a5e91
lib.platforms.power: init
2023-01-19 17:43:49 +00:00
Alyssa Ross
48f3fd2d49
lib.platforms.armv7: init
2023-01-19 17:43:41 +00:00
Robert Hensing
415504e867
lib/tests/release.nix: Make nix a parameter + strictDeps
...
This makes bisecting nix a bit easier.
Example reproducer, invoked from nix directory:
```bash
nix-build ../nixpkgs/lib/tests/release.nix --arg nix '(builtins.getFlake "git+file://${toString ./.}").packages.x86_64-linux.default'
```
2023-01-18 01:39:38 +01:00
Robert Hensing
f61d4d346b
Merge pull request #205190 from NixOS/lib.path.relativeNormalise
...
lib.path.subpath.{isValid,normalise}: init
2023-01-03 13:46:11 +01:00
Silvan Mosberger
98fbcf1788
lib.path.subpath.isValid: init
...
The first path library function
2023-01-03 13:20:36 +01:00
Naïm Favier
0355479715
lib/versions: add pad
...
Pad a version string with zeros to match a given number of components.
2022-12-21 12:58:21 +01:00
figsoda
695d4bc76b
lib: fix typos
2022-12-17 18:59:29 -05:00
Robert Hensing
efa1140e83
Merge pull request #205457 from h7x4/lib-strings-toInt-broken-for-negative-numbers
...
lib.strings: fix negative number handling for `toInt` and `toIntBase10`
2022-12-11 02:26:42 +01:00
Naïm Favier
ed0b8c26f1
lib/strings: add concatLines
...
Like `unlines` from Haskell.
The aim is to replace the `concatStringsSep "\n"` pattern for generated
files, which doesn't add a final newline.
2022-12-10 15:56:30 +01:00
h7x4
62e863e98c
lib.strings: fix negative number handling for toInt
and toIntBase10
...
The previous version would be unstable due to an input validation regex
not expecting a '-' in front of the number.
2022-12-10 13:16:45 +01:00