Add pkgs.buildBowerComponents function

Changed files
+53
pkgs
development
bower-modules
generic
top-level
+49
pkgs/development/bower-modules/generic/default.nix
···
···
+
{ 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
+
];
+
}
+
)
+4
pkgs/top-level/all-packages.nix
···
yuicompressor = callPackage ../development/tools/yuicompressor { };
### DEVELOPMENT / GO MODULES
go14Packages = callPackage ./go-packages.nix {
···
yuicompressor = callPackage ../development/tools/yuicompressor { };
+
### DEVELOPMENT / BOWER MODULES (JAVASCRIPT)
+
+
buildBowerComponents = callPackage ../development/bower-modules/generic { };
+
### DEVELOPMENT / GO MODULES
go14Packages = callPackage ./go-packages.nix {