diff options
author | Rodney Lorrimar <dev@rodney.id.au> | 2016-03-26 15:33:30 +0000 |
---|---|---|
committer | Rodney Lorrimar <dev@rodney.id.au> | 2016-03-28 08:25:44 +0100 |
commit | b22e94c2008bca19b62d86d9e7264ea478daf91c (patch) | |
tree | 8676426ca9c5d8f177e6c89e9d2e91d4a01dfdb7 /pkgs/development/bower-modules | |
parent | 457eddd18f180af2a2fd6285feeae7250b535281 (diff) |
Add pkgs.buildBowerComponents function
Diffstat (limited to 'pkgs/development/bower-modules')
-rw-r--r-- | pkgs/development/bower-modules/generic/default.nix | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/development/bower-modules/generic/default.nix b/pkgs/development/bower-modules/generic/default.nix new file mode 100644 index 000000000000..ba15b5881602 --- /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 + ]; + } +) |