Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ pkgs }: 2 3{ 4 buildInputs ? [ ], 5 generated, 6 ... 7}@attrs: 8 9let 10 # Fetches the bower packages. `generated` should be the result of a 11 # `bower2nix` command. 12 bowerPackages = import generated { 13 inherit (pkgs) buildEnv fetchbower; 14 }; 15 16in 17pkgs.stdenv.mkDerivation ( 18 attrs 19 // { 20 name = "bower_components-" + attrs.name; 21 22 inherit bowerPackages; 23 24 builder = builtins.toFile "builder.sh" '' 25 # The project's bower.json is required 26 cp $src/bower.json . 27 28 # Dereference symlinks -- bower doesn't like them 29 cp --recursive --reflink=auto \ 30 --dereference --no-preserve=mode \ 31 $bowerPackages bc 32 33 # Bower install in offline mode -- links together the fetched 34 # bower packages. 35 HOME=$PWD bower \ 36 --config.storage.packages=bc/packages \ 37 --config.storage.registry=bc/registry \ 38 --offline install 39 40 # Sets up a single bower_components directory within 41 # the output derivation. 42 mkdir -p $out 43 mv bower_components $out 44 ''; 45 46 buildInputs = buildInputs ++ [ 47 pkgs.git 48 pkgs.nodePackages.bower 49 ]; 50 } 51)