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