README.md in silver_spurs-1.0.1 vs README.md in silver_spurs-1.0.2
- old
+ new
@@ -1,29 +1,76 @@
-# SilverSpurs
+# SilverSpurs [![Build Status](https://travis-ci.org/christian-blades-cb/silver_spurs.png?branch=master)](https://travis-ci.org/christian-blades-cb/silver_spurs)
-TODO: Write a gem description
+RESTful Chef bootstrapping
+Instead of using a CLI to kick off bootstrapping, hit an API endpoint and let the service do it for you.
+
## Installation
+Install chef and set up knife on the machine (refer to the [chef docs](http://docs.opscode.com))
+
Add this line to your application's Gemfile:
gem 'silver_spurs'
+Create a config.ru:
+
+ require 'bundler'
+ Bundler.setup
+
+ require 'silver_spurs'
+
+ # SilverSpurs::App.deployment_key = '/opt/deployment_key.pem'
+ # SilverSpurs::App.deployment_user = 'deployer'
+ # SilverSpurs::App.node_name_filter = /\w{3,10}/
+ # SilverSpurs::Asyncifier.base_path = '/opt/silver_spurs'
+
+ run SilverSpurs::App
+
And then execute:
$ bundle
+ $ rackup
-Or install it yourself as:
+## Usage
- $ gem install silver_spurs
+### Kick off a bootstrap
-## Usage
+ $ curl -X PUT -i -d node_name=machineotron http://localhost/bootstrap/10.0.1.2
+
+The redirect will point to the query URL for the bootstrap run. Since these runs tend to take several minutes, this is preferable to a long-running HTTP request.
-TODO: Write usage instructions here
+Further GET requests to this endpoint will return a log of the run in progress. HEAD requests will return just the status code.
+### Status codes
+
+* 406 - Missing a required parameter
+* 404 - Unknown endpoint or resource
+* 201 - Run completed successfully
+* 202 - Run in progress
+* 550 - Run ended in failure
+
+## Using the client
+
+Add this line to the application's Gemfile:
+
+ gem 'silver_spurs'
+
+Sample application
+
+ require 'silver_spurs/client'
+
+ silver = SilverSpurs::Client.new('http://localhost')
+ bootstrap = silver.start_bootstrap('10.0.1.2', 'machineotron')
+ while bootstrap.status == :pending do
+ sleep 10
+ end
+ puts bootstrap.log
+
## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
-4. Push to the branch (`git push origin my-new-feature`)
-5. Create new Pull Request
+4. Add you some tests
+5. Push to the branch (`git push origin my-new-feature`)
+6. Create new Pull Request