https://github.com/oz/bowerball
Stream tarball from bower components over HTTP
https://github.com/oz/bowerball
Last synced: about 2 months ago
JSON representation
Stream tarball from bower components over HTTP
- Host: GitHub
- URL: https://github.com/oz/bowerball
- Owner: oz
- License: mit
- Created: 2012-12-21T00:00:57.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-04-20T00:21:51.000Z (about 12 years ago)
- Last Synced: 2025-03-26T22:04:52.240Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 121 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Bowerball
Bowerball is a little node program to stream tarballs over HTTP from [bower]
component files. This means, that you POST a Bower-compatible `component.json`
file, and the program will build, and stream back a tarball of the
corresponding `components` directory.I would blame alcohol, but this is really another of [zyll]'s weird ideas that
I could quickly hack. It is more a proof of concept than a enterprisy thing:
it's simple, it just works, so I hope it can be of some use. :)That said, you're welcome to hack and send pull-requests. A running instance
is available on Heroku: http://bowerball.herokuapp.comTo test it from the your command-line, run:
```
curl -sX POST -d '{"dependencies": {"jquery":"~2.0", "ember":"~1.0"} }' \
http://bowerball.herokuapp.com/ | tar -tv
```# Setup
Start by installing the npm package with `npm install bowerball`, and run
`node node_modules/bowerball/index.js`Alternatively, if you intend to code, grab the code:
```
$ git clone git://github.com/oz/bowerball.git
$ cd bowerball
$ npm install
$ node index.js
```# Example
Once installed, start the bowerball server in a terminal by calling
`bowerball`. It takes no arguments, the only movable part is the listening
port throught the `PORT` environment variable.```
$ bowerball
Server ready, listening on http://0.0.0.0:8080
```In another terminal, create a sample bower component file:
```
$ cat > foo.json
{
"dependencies": {
"jquery": "~2.0",
"ember": "~1.0"
}
}
^D
```And let bowerball serve that to you:
```
$ curl -sX POST -d @foo.json http://localhost:8080/ | tar -tv
drwx------ 0 45895 45895 0 Apr 19 19:07 components/jquery/
-rw------- 0 45895 45895 16689 Apr 19 19:07 components/jquery/jquery-migrate.js
-rw------- 0 45895 45895 733 Apr 19 19:07 components/jquery/composer.json
-rw------- 0 45895 45895 783 Apr 19 19:07 components/jquery/component.json
-rw------- 0 45895 45895 7087 Apr 19 19:07 components/jquery/jquery-migrate.min.js
-rw------- 0 45895 45895 240196 Apr 19 19:07 components/jquery/jquery.js
-rw------- 0 45895 45895 336 Apr 19 19:07 components/jquery/README.md
-rw------- 0 45895 45895 6 Apr 19 18:46 components/jquery/.gitignore
-rw------- 0 45895 45895 144 Apr 19 19:07 components/jquery/package.json
-rw------- 0 45895 45895 83095 Apr 19 19:07 components/jquery/jquery.min.js
-rw------- 0 45895 45895 226 Apr 19 19:07 components/jquery/bower.json
drwx------ 0 45895 45895 0 Apr 19 19:07 components/handlebars/
-rw------- 0 45895 45895 9636 Apr 19 18:48 components/handlebars/handlebars.runtime.js
-rw------- 0 45895 45895 431 Apr 19 19:07 components/handlebars/component.json
-rw------- 0 45895 45895 71956 Apr 19 18:48 components/handlebars/handlebars.js
drwx------ 0 45895 45895 0 Apr 19 19:07 components/ember/
-rw------- 0 45895 45895 562 Apr 19 18:48 components/ember/composer.json
-rw------- 0 45895 45895 191968 Apr 19 19:07 components/ember/ember.min.js
-rw------- 0 45895 45895 440 Apr 19 19:07 components/ember/component.json
-rw------- 0 45895 45895 770333 Apr 19 19:07 components/ember/ember.js
-rw------- 0 45895 45895 45 Apr 19 19:07 components/ember/.gitignore
-rw------- 0 45895 45895 222 Apr 19 18:48 components/ember/package.json
$
```And just like that, you got that pesky node dependency off your super
successful Django on Rails application... ;)# License
Copyright © 2013 Arnaud Berthomier. Distributed under the MIT License. See
LICENSE.txt for further details.[bower]: https://github.com/twitter/bower
[zyll]: https://github.com/zyll