From b22e94c2008bca19b62d86d9e7264ea478daf91c Mon Sep 17 00:00:00 2001 From: Rodney Lorrimar Date: Sat, 26 Mar 2016 15:33:30 +0000 Subject: Add pkgs.buildBowerComponents function --- pkgs/development/bower-modules/generic/default.nix | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 pkgs/development/bower-modules/generic/default.nix (limited to 'pkgs/development/bower-modules') diff --git a/pkgs/development/bower-modules/generic/default.nix b/pkgs/development/bower-modules/generic/default.nix new file mode 100644 index 00000000000..ba15b588160 --- /dev/null +++ b/pkgs/development/bower-modules/generic/default.nix @@ -0,0 +1,49 @@ +{ pkgs }: + +{ buildInputs ? [], generated, ... } @ attrs: + +let + # Fetches the bower packages. `generated` should be the result of a + # `bower2nix` command. + bowerPackages = import generated { + inherit (pkgs) buildEnv 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 + ]; + } +) -- cgit 1.4.1