Cagey
=====

A command-line interface for wrangling Velociraptor swarms and automating
some common operations.

Implementation
==============

This implementation does not rely on any APIs except the conventions of the
main HTTP-based interface. It parses and submits forms.

Features
========

``cagey`` supports several sub-commands, including:

 - build
 - swarm
 - rebuild-all

Build
-----

Simply assemble a build of an app at a given tag. This routine is useful to
prime an build before doing other swarm operations.

Swarm
-----

This routine will invoke the swarm operation on a swarm at a given tag::

    cagey swarm MyApp-Recipe_.* 3.0 -x Recipe_Skipped

It takes as its parameters a filter of swarm name, a version number, and
optionally some excludes.

The name filter is case sensitive, but the excludes are case insensitive.

When the command is executed, the routine will first report which swarms will
be affected and give a 5 second timer in case the matches were not what the
user intended. If the routine is not cancelled, it will proceed to swarm each
swarm in turn.

Rebuild All
-----------

This routine will find swarms matching the filter and peform a forced rebuild,
re-release, and swarm on those swarms such that they are rebuilt whether or
not Velociraptor believes there's any advantage to rebuilding. This routine
will become largely obviated if `Velociraptor issue 19
<https://bitbucket.org/yougov/velociraptor/issue/19>`_ is implemented.

    cagey rebuild-all MyApp
