| Commit message (Collapse) | Author | Age |
|\
| |
| | |
lib.makeOverridable: Propagate function arguments
|
| |
| |
| |
| |
| |
| |
| | |
- Rename ff to result because that's what it is
- Better indentation
- Less parens
- Comment what overrideWith does
|
| |
| |
| |
| |
| |
| | |
- Apparently nobody ever needed this
- We already have enough ways to override things
- Using overrideDerivation is discouraged
|
| |
| |
| |
| |
| |
| |
| | |
This allows querying function arguments of things like fetchFromGitHub:
nix-repl> lib.functionArgs pkgs.fetchFromGitHub
{ fetchSubmodules = true; githubBase = true; ... }
|
| |
| |
| |
| |
| |
| |
| | |
This allows querying the arguments you can .override:
nix-repl> lib.functionArgs pkgs.hello.override
{ fetchurl = false; stdenv = false; }
|
| | |
|
| |
| |
| |
| | |
And call it overrideArgs in the let binding because that's what it does
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`pipe` is a useful operator for creating pipelines of functions.
It works around the usual problem of e.g. string operations becoming
deeply nested functions.
In principle, there are four different ways this function could be
written:
pipe val [ f1 .. fn ]
pipe val [ fn .. f1 ]
compose [ f1 .. fn ] val
compose [ fn .. f1 ] val
The third and fourth form mirror composition of functions, they would
be the same as e.g. `(f1 << f2 << f3 .. << fn) val`.
However, it is not clear which direction the list should have (as one
can see in the second form, which is the most absurd.
In order not to confuse users, we decide for the most “intuitive”
form, which mirrors the way unix pipes work (thus the name `pipe`).
The flow of data goes from left to right.
Co-Authored-By: Silvan Mosberger <infinisil@icloud.com>
|
|\ \
| | |
| | | |
lib.mkRemovedOptionModule: Show replacement for option usage too
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously mkRemovedOptionModule would only show the replacement
instructions when the removed option was *defined*. With this change, it
also does so when an option is *used*.
This is essential for options that are only intended to be used such as
`security.acme.directory`, whose replacement instructions would never
trigger without this change because almost everybody only uses the
option and isn't defining it.
|
|\ \ \
| | | |
| | | | |
lib: Add armv7a-linux to doubles.nix
|
| | | |
| | | |
| | | |
| | | | |
This is needed for android.
|
|\ \ \ \
| |_|/ /
|/| | | |
mkRemovedOptionModule: assert on removed options
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We don't want to ignore config that can mess up machines. In general
this should always fail evaluation, as you think you are changing
behaviour and don't, which can easily create run-time errors we can
catch early.
|
|\ \ \ \
| |/ / /
|/| | | |
Replace uses of splitString for splitting version strings
|
| | | | |
|
| | | | |
|
| | | | |
|
|/ / / |
|
| | | |
|
|/ /
| |
| |
| |
| | |
* Markhor is a spiral horned animal that is on the endangered species list
* https://en.wikipedia.org/wiki/Markhor
|
|\ \ |
|
| |\ \
| | | |
| | | | |
lib.cleanSourceWith: Allow name to be set, optional filter, doc
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This change is API-compatible and hash-compatible with the previous
version.
At first I considered to write a rename function too, but adding
it name to cleanSourceWith was a no-brainer for ease of use. It
turns out that a rename function isn't any more useful than
cleanSourceWith.
To avoid having to write the identity predicate when renaming,
the filter is now optional.
builtins.path is supported since Nix 2.0 which is required by nixpkgs
|
| |/ / |
|
|\| | |
|
| | | |
|
| |\ \ |
|
| | |\ \ |
|
| | |\ \ \ |
|
| | | | |/
| | | |/| |
|
| | |_|/
| |/| | |
|
| |/ / |
|
| | |
| | |
| | |
| | | |
This adds enough logic to nixpkgs to support the `js-unknown-ghcjs` triple.
|
|\ \ \
| | |/
| |/| |
|
| |\ \
| | | |
| | | | |
lib/modules: Use options `apply` function even if no values are defined
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This allows `apply` functions to return a valid value if they completely
ignore their argument, which is the case for the option renaming
functions like `mkAliasOptionModule`. Therefore this solves issue #63693
|
| | | | |
|
|\| | | |
|
| | | | |
|
| |\ \ \ |
|
| | | | | |
|
| |\ \ \ \
| | | |/ /
| | |/| | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The main purpose is to bring attention to `flip map`, which improves
code readablity. It is useful when ad-hoc anonymous function
grows two or more lines in `map` application:
```
map (lcfg:
let port = lcfg.port;
portStr = if port != defaultPort then ":${toString port}" else "";
scheme = if cfg.enableSSL then "https" else "http";
in "${scheme}://cfg.hostName${portStr}"
) (getListen cfg);
```
Compare this to `foreach`-style:
```
foreach (getListen cfg) (lcfg:
let port = lcfg.port;
portStr = if port != defaultPort then ":${toString port}" else "";
scheme = if cfg.enableSSL then "https" else "http";
in "${scheme}://cfg.hostName${portStr}"
);
```
This is similar to Haskell's `for` (http://hackage.haskell.org/package/base-4.12.0.0/docs/Data-Traversable.html#v:for)
|
| |_|/ /
|/| | | |
|
|\ \ \ \
| |_|/ /
|/| | | |
lib/types: Add oneOf, extension of either to a list of types
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
lib/types: change merge strategy for `str`, `int`, `float`, `path` and `enum`
|
| |/ /
| | |
| | |
| | | |
Change to `mergeEqualOption`.
|