66 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| with import ./config.nix;
 | |
| 
 | |
| let
 | |
| 
 | |
|   dep = mkDerivation {
 | |
|     name = "dep";
 | |
|     buildCommand = ''
 | |
|       mkdir $out; echo bla > $out/bla
 | |
|     '';
 | |
|   };
 | |
| 
 | |
| in
 | |
| 
 | |
| 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
 | |
| 
 | |
|     json=$(cat .attrs.json)
 | |
|     [[ $json =~ '"narHash":"sha256:1r7yc43zqnzl5b0als5vnyp649gk17i37s7mj00xr8kc47rjcybk"' ]]
 | |
|     [[ $json =~ '"narSize":288' ]]
 | |
|     [[ $json =~ '"closureSize":288' ]]
 | |
|     [[ $json =~ '"references":[]' ]]
 | |
|   '';
 | |
| 
 | |
|   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";
 | |
| 
 | |
|   exportReferencesGraph.refs = [ dep ];
 | |
| }
 |