mirror of
https://github.com/nix-community/naersk
synced 2024-11-21 19:23:09 +00:00
Only accept function in allowFun params
This commit is contained in:
parent
222cac5b0d
commit
fe0e683d1d
3 changed files with 12 additions and 7 deletions
10
README.md
10
README.md
|
@ -45,13 +45,13 @@ it is converted to an attribute set equivalent to `{ root = theArg; }`.
|
|||
| `version` | The version of the derivation. |
|
||||
| `src` | Used by `naersk` as source input to the derivation. When `root` is not set, `src` is also used to discover the `Cargo.toml` and `Cargo.lock`. |
|
||||
| `root` | Used by `naersk` to read the `Cargo.toml` and `Cargo.lock` files. May be different from `src`. When `src` is not set, `root` is (indirectly) used as `src`. |
|
||||
| `cargoBuild` | The command to use for the build. When set to a function, the function is applied to the default value. <br/> Default: `''cargo $cargo_options build $cargo_build_options''` |
|
||||
| `cargoBuildOptions` | Options passed to cargo build, i.e. `cargo build <OPTS>`. These options can be accessed during the build through the environment variable `cargo_build_options`. <br/> Note: naersk relies on the `--out-dir out` option. <br/> Note: these values are not (shell) escaped, meaning that you can use environment variables but must be careful when introducing e.g. spaces. <br/> When set to a function, the function is applied to the default value. <br/> Default: `[ "$cargo_release" ''-j "$NIX_BUILD_CORES"'' "--out-dir" "out" ]` |
|
||||
| `cargoBuild` | The command to use for the build. The argument must be a function modifying the default value. <br/> Default: `''cargo $cargo_options build $cargo_build_options''` |
|
||||
| `cargoBuildOptions` | Options passed to cargo build, i.e. `cargo build <OPTS>`. These options can be accessed during the build through the environment variable `cargo_build_options`. <br/> Note: naersk relies on the `--out-dir out` option. <br/> Note: these values are not (shell) escaped, meaning that you can use environment variables but must be careful when introducing e.g. spaces. <br/> The argument must be a function modifying the default value. <br/> Default: `[ "$cargo_release" ''-j "$NIX_BUILD_CORES"'' "--out-dir" "out" ]` |
|
||||
| `doCheck` | When true, `checkPhase` is run. Default: `true` |
|
||||
| `cargoTestCommands` | The commands to run in the `checkPhase`. When set to a function, the function is applied to the default value. <br/> Default: `[ ''cargo $cargo_options test $cargo_test_options'' ]` |
|
||||
| `cargoTestOptions` | Options passed to cargo test, i.e. `cargo test <OPTS>`. These options can be accessed during the build through the environment variable `cargo_test_options`. <br/> Note: these values are not (shell) escaped, meaning that you can use environment variables but must be careful when introducing e.g. spaces. <br/> When set to a function, the function is applied to the default value. <br/> Default: `[ "$cargo_release" ''-j "$NIX_BUILD_CORES"'' ]` |
|
||||
| `cargoTestCommands` | The commands to run in the `checkPhase`. The argument must be a function modifying the default value. <br/> Default: `[ ''cargo $cargo_options test $cargo_test_options'' ]` |
|
||||
| `cargoTestOptions` | Options passed to cargo test, i.e. `cargo test <OPTS>`. These options can be accessed during the build through the environment variable `cargo_test_options`. <br/> Note: these values are not (shell) escaped, meaning that you can use environment variables but must be careful when introducing e.g. spaces. <br/> The argument must be a function modifying the default value. <br/> Default: `[ "$cargo_release" ''-j "$NIX_BUILD_CORES"'' ]` |
|
||||
| `buildInputs` | Extra `buildInputs` to all derivations. Default: `[]` |
|
||||
| `cargoOptions` | Options passed to all cargo commands, i.e. `cargo <OPTS> ...`. These options can be accessed during the build through the environment variable `cargo_options`. <br/> Note: these values are not (shell) escaped, meaning that you can use environment variables but must be careful when introducing e.g. spaces. <br/> When set to a function, the function is applied to the default value. <br/> Default: `[ "-Z" "unstable-options" ]` |
|
||||
| `cargoOptions` | Options passed to all cargo commands, i.e. `cargo <OPTS> ...`. These options can be accessed during the build through the environment variable `cargo_options`. <br/> Note: these values are not (shell) escaped, meaning that you can use environment variables but must be careful when introducing e.g. spaces. <br/> The argument must be a function modifying the default value. <br/> Default: `[ "-Z" "unstable-options" ]` |
|
||||
| `doDoc` | When true, `cargo doc` is run and a new output `doc` is generated. Default: `false` |
|
||||
| `release` | When true, all cargo builds are run with `--release`. The environment variable `cargo_release` is set to `--release` iff this option is set. Default: `true` |
|
||||
| `override` | An override for all derivations involved in the build. Default: `(x: x)` |
|
||||
|
|
|
@ -4,7 +4,12 @@ let
|
|||
if builtins.hasAttr attrName attrs0 then
|
||||
if lib.isFunction attrs0.${attrName} then
|
||||
attrs0.${attrName} default
|
||||
else attrs0.${attrName}
|
||||
else
|
||||
let
|
||||
finalTy = builtins.typeOf default;
|
||||
actualTy = builtins.typeOf attrs0.${attrName};
|
||||
in
|
||||
throw "${attrName} should be a function from ${finalTy} to ${finalTy}, but is a ${actualTy}"
|
||||
else default;
|
||||
mkAttrs = attrs0: rec
|
||||
{
|
||||
|
|
|
@ -62,7 +62,7 @@ fn print_mk_attrs(mk_attrs: SyntaxNode) {
|
|||
.lambda()
|
||||
.expect("No inner lambda");
|
||||
if inner2.to_string() == "allowFun" {
|
||||
Some(format!("When set to a function, the function is applied to the default value. <br/> Default: `{}`", x.value().unwrap()))
|
||||
Some(format!("The argument must be a function modifying the default value. <br/> Default: `{}`", x.value().unwrap()))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue