mirror of
https://github.com/NixOS/nix
synced 2025-07-07 22:33:57 +02:00
Pass lists/attrsets to bash as (associative) arrays
This commit is contained in:
parent
ac12517f3e
commit
2d5b1b24bf
10 changed files with 166 additions and 26 deletions
47
tests/structured-attrs.nix
Normal file
47
tests/structured-attrs.nix
Normal file
|
@ -0,0 +1,47 @@
|
|||
with import ./config.nix;
|
||||
|
||||
mkDerivation {
|
||||
name = "structured";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
buildCommand = ''
|
||||
set -x
|
||||
|
||||
[[ $int = 123456789 ]]
|
||||
[[ -z $float ]]
|
||||
[[ -n $boolTrue ]]
|
||||
[[ -z $boolFalse ]]
|
||||
[[ -n ''${hardening[format]} ]]
|
||||
[[ -z ''${hardening[fortify]} ]]
|
||||
[[ ''${#buildInputs[@]} = 7 ]]
|
||||
[[ ''${buildInputs[2]} = c ]]
|
||||
[[ -v nothing ]]
|
||||
[[ -z $nothing ]]
|
||||
|
||||
mkdir ''${outputs[out]}
|
||||
echo bar > $dest
|
||||
'';
|
||||
|
||||
buildInputs = [ "a" "b" "c" 123 "'" "\"" null ];
|
||||
|
||||
hardening.format = true;
|
||||
hardening.fortify = false;
|
||||
|
||||
outer.inner = [ 1 2 3 ];
|
||||
|
||||
int = 123456789;
|
||||
|
||||
float = 123.456;
|
||||
|
||||
boolTrue = true;
|
||||
boolFalse = false;
|
||||
|
||||
nothing = null;
|
||||
|
||||
dest = "${placeholder "out"}/foo";
|
||||
|
||||
"foo bar" = "BAD";
|
||||
"1foobar" = "BAD";
|
||||
"foo$" = "BAD";
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue