= duke Duke helps you manage multiple CIJoe instances. It comes with a command-line interface and a web interface. == Basic Usage Install the duke gem gem install duke Create a new duke installation duke new some/directory Inside the duke directory use the command-line interface to add a new repository duke add git@github.com:gotascii/duke.git Duke will clone the repo and configure it with some defaults == Configuration === Default Configuration host: localhost Given a cijoe running on port 4567 and configured host of 'localhost' the cijoe url will be [http://localhost:4567/](http://localhost:4567/) runner: rake When duke checks out a new repo it will configure it to build using this command. pid_dir: tmp/pids The relative directory duke will use to store cijoe daemon pid files. log_dir: log The relative directory duke will use to store cijoe log files. campfire: {} Options in the campfire hash are used to configure a new repo. === Custom Configuration A config.yml in the root of the duke installation directory will override the defaults. === Per-Project Runner The duke command-line utility allows you to set the runner for a particular project. duke runner repo_dir "rake spec" == Command-Line Usage duke COMMAND [ARGS] === Commands new [DIR] Installs duke into DIR. Creates basic directory structure required for duke to do its thing. add REPO_URL Clones the repo at REPO_URL into the duke directory and configures it to run cijoe. start REPO_DIR PORT Starts a cijoe server set to build the repo in REPO_DIR on port PORT. stop REPO_DIR Stops the cijoe server running for REPO_DIR. runner REPO_DIR CMD Configures REPO_DIR to use CMD for cijoe builds. build REPO_DIR Tell cijoe to build the project in REPO_DIR list Lists all of the repo_dirs and their cijoe server and build statuses. == Website Interface Duke provides a way to add, start, and stop your cijoes. It also provides a nice list of all your cijoes and their current build status. It looks like the following screenshot. http://img.skitch.com/20101108-nj852sa18856hiykq5e9kas9m1.jpg The duke installation directory contains a config.ru and the easiest way to get rolling is by using passenger standalone. Just start up passenger inside the duke directory. passenger start == Note on Patches/Pull Requests * Fork the project. * Make your feature addition or bug fix. * Add tests for it. This is important so I don't break it in a future version unintentionally. * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull) * Send me a pull request. Bonus points for topic branches. == Copyright Copyright (c) 2010 Justin Marney. See LICENSE for details.