# Backported buildBowerComponents so that we can also use it with the version # 16.03 which is the current stable at the time of this writing. # # This file can be removed once building with 16.03 is not needed anymore. { pkgs }: { buildInputs ? [], generated, ... } @ attrs: let bower2nix-src = pkgs.fetchzip { url = "https://github.com/rvl/bower2nix/archive/v3.0.1.tar.gz"; sha256 = "1zbvz96k2j6g0r4lvm5cgh41a73k9dgayk7x63cmg538dzznxvyb"; }; bower2nix = import "${bower2nix-src}/default.nix" { inherit pkgs; }; fetchbower = import ./backport-16.03-fetchbower.nix { inherit (pkgs) stdenv lib; inherit bower2nix; }; # Fetches the bower packages. `generated` should be the result of a # `bower2nix` command. bowerPackages = import generated { inherit (pkgs) buildEnv; inherit fetchbower; }; in pkgs.stdenv.mkDerivation ( attrs // { name = "bower_components-" + attrs.name; inherit bowerPackages; builder = builtins.toFile "builder.sh" '' source $stdenv/setup # The project's bower.json is required cp $src/bower.json . # Dereference symlinks -- bower doesn't like them cp --recursive --reflink=auto \ --dereference --no-preserve=mode \ $bowerPackages bc # Bower install in offline mode -- links together the fetched # bower packages. HOME=$PWD bower \ --config.storage.packages=bc/packages \ --config.storage.registry=bc/registry \ --offline install # Sets up a single bower_components directory within # the output derivation. mkdir -p $out mv bower_components $out ''; buildInputs = buildInputs ++ [ pkgs.git pkgs.nodePackages.bower ]; } )