Commit graph

2933 commits

Author SHA1 Message Date
Artturi a5357d06e4
Merge pull request #167947 from MatthewCroughan/mc/callLocklessFlake
lib: add callLocklessFlake
2022-05-01 23:06:17 +03:00
Robert Hensing c2451ed1a2
Merge pull request #167776 from hercules-ci/lib-modules-allow-disable-_modules.args-docs-internal
lib.modules: Allow making _module.args internal
2022-04-30 13:43:08 +02:00
Alyssa Ross 2a6288d9b9 lib.systems: add riscv{32,64} sets and filters
For other platforms like Intel and ARM, we can do
e.g. lib.platforms.aarch64 to get only the 64-bit ARM platorms, but
until now there were no equivalents for RISC-V.
2022-04-28 08:17:02 +00:00
Alyssa Ross ed24c902d0 lib/tests: add RISC-V test 2022-04-28 08:17:02 +00:00
Robert Hensing 5f8cb21011
Merge pull request #170583 from ncfavier/mkShellVars
lib/strings: add toShellVars
2022-04-27 23:33:28 +02:00
Naïm Camille Favier 535997fa52
lib/strings: fix quoting of example
Co-authored-by: Silvan Mosberger <github@infinisil.com>
2022-04-27 19:42:40 +02:00
Naïm Favier 226bc99659
lib/strings: add toShellVars
A straightforward piece of plumbing to safely inject Nix variables into
shell scripts:

''
  ${lib.toShellVars { inherit foo bar; }}
  cmd "$foo" --bar "$bar"
''
2022-04-27 16:04:17 +02:00
Artturi c95f5e185e
Merge pull request #167247 from Artturin/addgetmainprog
lib/meta: add getExe to get the main program of a drv
2022-04-26 21:42:23 +03:00
Robert Hensing 27a62a9c60
Merge pull request #168778 from hercules-ci/issue-168767-extendModules-module-dedup-collision
`lib.types.submoduleWith`: Avoid `_key` collisions after `extendModules` (issue #168767)
2022-04-26 13:01:28 +02:00
Sandro 294ed1bed7
Merge pull request #168111 from a-m-joseph/lib-systems-inspect-powerpc
lib/systems/inspect.nix: add isPower64
2022-04-25 02:22:48 +02:00
Artturin 379b9c8be3 lib/meta: add getExe to get the main program of a drv 2022-04-24 04:19:49 +03:00
Robert Hensing 224426ba6d lib.types.submoduleWith: Avoid _key collisions after extendModules 2022-04-24 00:07:59 +02:00
Daniel Thwaites 4f9b8a0702
lib/strings: optimise hasInfix function (#168175)
* lib/strings: optimise hasInfix function

* lib/strings: optimise hasInfix further using regex

* rstudio: call hasInfix with a string

* lib/strings: remove let from hasInfix

Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>

Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>
2022-04-22 12:43:25 -04:00
Artturin 4aab12d5a1 lib/systems/platforms: correctly import examples.nix
before: :p lib.systems failed with
error: getting status of '...examples': no such file or directory
2022-04-15 20:25:58 +03:00
matthewcroughan 3f128cc024 lib/tests: evaluate value from subflake with callLocklessFlake 2022-04-12 21:22:36 +01:00
matthewcroughan ec59145c3b lib/tests: use subflake to test callLocklessFlake 2022-04-12 20:38:55 +01:00
matthewcroughan cc052779fb lib/tests: add test for callLocklessFlake 2022-04-12 19:47:48 +01:00
matthewcroughan cad8bbe589 lib: init flakes.nix
This commit creates flakes.nix, which is a library containing functions
which relate to interacting with flakes. It also moves related functions
from trivial.nix into it.
2022-04-12 19:28:23 +01:00
matthewcroughan c190b08bb7 lib: add callLocklessFlake
This is essentially a copy of the function of the same name, from
flake-compat. callLocklessFlake is useful when trying to utilise a
flake.nix without a lock file, often for when you want to create a
subflake from within a parent flake.

Co-authored-by: Tom Bereknyei <tomberek@gmail.com>
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2022-04-12 19:27:24 +01:00
Robert Hensing 14aa201b65 lib.modules: Allow making _module.args internal
This allows other module system consumers to
disable these docs via option merging.

For instance arion uses asciidoc instead of
docbook so that would look awful.
2022-04-11 11:17:34 +02:00
Adam Joseph 81afd541f9 lib/systems/inspect.nix: add isPower64
This commit adds an `isPower64` predicate to the two existing
predicates for this architecture (`isPower` and `isPowerPC`).

Note that `isPowerPC` matches only 32-bit machines, whereas `isPower`
matches both 64-bit and 32-bit machines.  Prior to this commit there
was no single `isXXX` predicate for `powerpc64le`.
2022-04-10 01:56:28 -07:00
Silvan Mosberger 180173a1c4
Merge pull request #164088 from Profpatsch/lib.generators-add-toINIWithGlobalSection
lib.generators: add toINIWithGlobalSection
2022-04-06 19:02:36 +02:00
Robert Hensing c705953267
Merge pull request #165540 from Infinisil/module-args-docs
lib/modules: Document `_module.args`
2022-04-05 21:51:46 +02:00
Robert Hensing 559ac3c9e7
Merge pull request #166383 from hercules-ci/always-sanitize-derivation-name
Always sanitize derivation name
2022-04-05 20:05:33 +02:00
Robert Hensing fffabe7500 lib.sanitizeDerivationName: Simplify regex
`^` and `$` are implicit in `match`.
2022-04-05 19:14:09 +02:00
Silvan Mosberger 25de2935ef lib/modules: Document _module.args
Documents the _module.args option, motivated by many usages in Flakes,
especially with the deprecation of extraArgs
(78ada83361)

The documentation rendering for this option had to be handled a bit
specially, since it's not declared in nixos/modules like all the other
NixOS options.

Co-Authored-By: pennae <github@quasiparticle.net>
Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
2022-04-05 18:26:40 +02:00
Silvan Mosberger 1c00bf3948 lib/customization: Improve callPackage error message for missing args
This uses the levenshtein distance to look through all possible
arguments to find ones that are close to what was requested:

  error: Function in /home/infinisil/src/nixpkgs/pkgs/tools/text/ripgrep/default.nix
    called without required argument "fetchFromGithub",
    did you mean "fetchFromGitHub" or "fetchFromGitLab"?

With https://github.com/NixOS/nix/pull/3468 (in current nixUnstable) the error
message becomes even better, adding line location info
2022-04-01 22:03:05 +02:00
Silvan Mosberger f8c1aee5da lib/tests: Add tests for levenshtein functions 2022-04-01 22:03:05 +02:00
Silvan Mosberger 975a1ae339 lib/strings: Add levenshtein distance functions
Adds some functions related to string similarity:
- lib.strings.commonPrefixLength
- lib.strings.commonSuffixLength
- lib.strings.levenshtein
- lib.strings.levenshteinAtMost
2022-04-01 22:03:05 +02:00
Robert Hensing 2999ab114e lib.sanitizeDerivationName: Test with unicode 2022-03-31 18:31:11 +02:00
Robert Hensing 342a3c32c9 lib.sanitizeDerivationName: Optimize the common case 2022-03-31 18:31:11 +02:00
github-actions[bot] 03106b0236
Merge master into haskell-updates 2022-03-29 00:12:40 +00:00
Robert Hensing 9dd71d8c50
Merge pull request #165956 from ncfavier/lib-warn-throw
lib/trivial: actually expose warnIfNot and throwIf
2022-03-28 14:07:53 +02:00
github-actions[bot] f0839d8bcd
Merge master into haskell-updates 2022-03-28 00:11:42 +00:00
Naïm Favier 9f5796be49
lib/trivial: actually expose warnIfNot and throwIf 2022-03-27 16:48:33 +02:00
Sandro ac5ea36581
Merge pull request #165672 from yoctocell/patatt-init 2022-03-27 14:53:39 +02:00
Sandro 3cc111d919
Merge pull request #165597 from ckiee/generaluser-init 2022-03-27 12:54:25 +02:00
sternenseemann 372d0a707e Merge remote-tracking branch 'origin/master' into haskell-updates 2022-03-26 09:59:28 +01:00
Silvan Mosberger 99d9d45630
Merge pull request #164651 from Infinisil/remove-optionSet
lib/modules: Finally remove deprecated types.optionSet
2022-03-25 17:41:57 +01:00
github-actions[bot] 79b7796557
Merge master into haskell-updates 2022-03-25 00:11:06 +00:00
Xinglu Chen e13494d071
lib.licenses: add MIT-0
<https://spdx.org/licenses/MIT-0.html>
2022-03-24 18:49:26 +01:00
Robert Hensing ce5a33e62b
Merge pull request #164660 from ncfavier/tests-restrict-arguments
nixos/testing: restrict arguments to makeTest
2022-03-24 17:01:47 +01:00
ckie 2bc1cd1ac4
soundfont-generaluser: init at 1.471 2022-03-24 12:49:38 +02:00
github-actions[bot] b86264453e
Merge master into haskell-updates 2022-03-23 00:11:32 +00:00
Silvan Mosberger a38220e61d
Merge pull request #164890 from ncfavier/lib-warn-throw
lib/trivial: add warnIfNot and throwIf
2022-03-22 21:12:11 +01:00
github-actions[bot] cf3e30f70f
Merge master into haskell-updates 2022-03-22 00:12:28 +00:00
Robert Hensing 6c469679f6 Merge remote-tracking branch 'upstream/master' into tests-restrict-arguments 2022-03-21 23:17:17 +01:00
Robert Hensing 84274cbc95 lib: Add toFunction 2022-03-21 23:14:10 +01:00
Robert Hensing 6a0b24b276 lib: applyIfFunction -> applyModuleArgsIfFunction 2022-03-21 23:14:10 +01:00
Kevin Cox 8ce16fcf62
Merge pull request #163451 from hercules-ci/stop-premature-warnings
Stop premature warnings, including `nix.settings` migration
2022-03-21 10:10:40 -04:00