Sha256: e603f00527a3766ab640ef861d1348bed5dce8d97b1a54e9e39604e779601bf6

Contents?: true

Size: 1.88 KB

Versions: 33

Compression:

Stored size: 1.88 KB

Contents

# Shaddox

This project is entirely unfinished. Please don't actually use it.

Ruby gem for provisioning systems. Here's the idea of how it works:

Provisioning/deployment configuration is defined in a Doxfile in the project directory. It might look something like this:
```ruby
server :box1, {
    :address => "0.0.0.0"
    :installer => :apt
}

repo :main, {
    :repository => "https://github.com/foo/bar.git"
}

task :provision do
    install 'tree'
    sh "tree"
    sh "echo 'Hello, world!'"
end

task :deploy do
    target_dir = "~/target-dir"
    auto_deploy_git :main, target_dir
    cd target_dir do
        ls
    end
    symlink "#{target_dir}/current", "~/foobar"
end
```

You could then use shaddox to provision the server `:box1`
```shaddox provision box1```
or your local machine
```shaddox provision local```

To execute provisioning blocks on the target machine, shaddow will generate a shadow script that might look something like this:
```ruby
require 'shaddox/shadow'
Shadow.new(:installer => :apt) do
    ## Begin compiled task ##
    
    install 'tree'
    sh "tree"
    sh "echo 'Hello, world!"
    
    ## End compiled task ##
end
```

Shaddox then asks the target machine to execute the shaddow, ensuring that Ruby and the Shaddox gem are install first (using bootstrap.sh). Typically on remote machines this means SCP'ing a generated shadow over and executing it over SSH.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'shaddox'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install shaddox

## Usage

TODO: Write usage instructions here

## Contributing

1. Fork it ( https://github.com/[my-github-username]/shaddox/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
shaddox-0.1.3 README.md
shaddox-0.1.2 README.md
shaddox-0.1.1 README.md
shaddox-0.1.0 README.md
shaddox-0.0.30 README.md
shaddox-0.0.29 README.md
shaddox-0.0.28 README.md
shaddox-0.0.27 README.md
shaddox-0.0.26 README.md
shaddox-0.0.25 README.md
shaddox-0.0.24 README.md
shaddox-0.0.23 README.md
shaddox-0.0.22 README.md
shaddox-0.0.21 README.md
shaddox-0.0.20 README.md
shaddox-0.0.19 README.md
shaddox-0.0.18 README.md
shaddox-0.0.17 README.md
shaddox-0.0.16 README.md
shaddox-0.0.15 README.md