bowerrecipe

zc.buildout recipe to install static resources using Twitter Bower.


License
MIT
Install
pip install bowerrecipe==0.1

Documentation

This recipe allows downloading and installing assets such as images, CSS and JavaScript using Twitter Bower.

The recipe supports the following options:

packages

Packages that should be installed with bower. Packages specified here are passed to bower verbatim. They can be specified in any form that is supported by bower:

packages =
    underscore
    git://github.com/components/jquery.git
    bootstrap#2.2.2
base-directory

Absolute path to the bower "project" directory. bower install is run from this directory and the bower configuration file, .bowerrc is also placed here. Optional; defaults to ${buildout:parts-directory}/bower. Requires an absolute path.

This directory is not removed when the Buildout part is uninstalled.

executable
Absolute path to the bower executable. Packages are installed using this executable. Optional; defaults to bower on PATH.
downloads

Relative path, from the base-directory, to the directory where bower will download packages to. This path is written to the .bowerrc file prior to running the executable. Optional; defaults to downloads. Thus, the downloaded packages are placed in ${base-directory}/downloads by default.

This directory is removed when the Buildout part is uninstalled.

A sample buildout that uses this recipe could look like:

[buildout]
parts = node web

[node]
recipe = gp.recipe.node
url = http://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz
npms = bower@0.6.8
scripts = bower

[web]
recipe = bowerrecipe
packages = jquery#1.8.3 normalize-css
executable = ${buildout:bin-directory}/bower

This would place the downloaded packages in parts/bower/downloads. Modifying the web section to be:

[web]
recipe = bowerrecipe
packages = jquery#1.8.3 normalize-css
executable = ${buildout:bin-directory}/bower
base-directory = ${buildout:parts-directory}
downloads = components

would result in bower placing the downloaded packages in parts/components.

  1. Bower still looks at the ~/.bowerrc file. Hence, if this file exists, it may affect the buildout bower configuration
  2. Bower still uses the cache located in the user's home directory. For me, this happens to be ~/.bower/cache/