Commit graph

347 commits

Author SHA1 Message Date
Stephen Fromm
60d3e9f3de Add --purge option to ansible-pull
Removes git checkout after playbook run.
2012-10-12 07:55:22 -07:00
Stephen Fromm
034e8f59ed Clean up auto-selection of playbook and miscellaneous changes
Direct any ansible-pull specific messages to stderr.
Introduce try_playbook() and select_playbook() to remove try/except-y.
2012-10-12 07:55:22 -07:00
Matthew Johnson
0841ed4796 change method of obtaining hostname to match ansible/library/setup 2012-10-12 07:55:22 -07:00
Matthew Johnson
2b24131baa fetch the git repo before trying to find a playbook 2012-10-12 07:55:22 -07:00
Stephen Fromm
788e11f1db Merge commits from copperlight's branch ansible-pull_playbook_parameter branch
Merged commits: 3cd25b5 and ed9fc76.  Some massaging of changes applied.
2012-10-12 07:55:22 -07:00
Aleksej Romanov
05464816c2 Different return codes for different errors. 2012-10-04 17:43:25 +07:00
Aleksej Romanov
01e922aa69 Indicate errors with exit code. 2012-10-04 03:11:14 +07:00
Michael DeHaan
a2f76c1c69 If all hosts in a play fail, fail the whole playbook and don't bother printing out every remaining task. 2012-09-30 21:06:00 -04:00
Michael DeHaan
3017dc92d9 make callbacks modular 2012-08-18 19:43:08 -04:00
Seth Vidal
8e039a6389 add --list-hosts option to ansible-playbook to dump out the hosts
being run against for each playbook
2012-08-15 14:19:45 -04:00
Michael DeHaan
3587ffdef3 Allow /bin/ansible to use --limit 2012-08-11 14:05:24 -04:00
Michael DeHaan
1c81ddf8d4 add the limit option, which can be used to further confine the patterns selected by "hosts:" in ansible-playbooks
to an additional pattern (a subset) specified on the command line.  For instance, a playbook could be reusable
and target "webservers" and "dbservers", but you want to test only in the stage environment, or a few boxes at a time.
2012-08-10 02:45:29 -04:00
Michael DeHaan
846186e2fc Add -vvv support for debugging activity 2012-08-08 21:09:14 -04:00
Michael DeHaan
faed4b5a33 whitespace + remove deprecated YAML parser (migration script lives in examples/scripts and warning was added
in 0.6 release)
2012-08-06 20:07:02 -04:00
Michael DeHaan
e035ce97ce blue on black, tears on a river, push on a shove, it don't mean much
(make colorized playbook runs not suck on black terminals)
2012-07-25 20:31:26 -04:00
Michael DeHaan
12ff9b5b9a Move color coding bits to module, use over rest of playbook 2012-07-24 19:30:02 -04:00
Jan-Piet Mens
bc17553d1c Support for colors in ansible-playbook 2012-07-24 14:39:45 +02:00
Michael DeHaan
dc4ebab345 Merge pull request #576 from davehatton/adjust_playbook_output_formating
improve output formating for playbook
2012-07-11 17:42:39 -07:00
Michael DeHaan
83f23ef861 Basic support for tagging tasks and selecting a subset of tasks to run with --tags. 2012-07-11 19:51:26 -04:00
Dave Hatton
7ecdb83800 improve output formating for playbook 2012-07-11 09:35:10 +01:00
Michael DeHaan
efac68b636 Remove the -D module debug flag, which no longer is functional due to sudo pty requirements, and replace with -v/--verbose.
This flag will show playbook output from non-failing commands.  -v is also added to /usr/bin/ansible, but not  yet used.

I also gutted some internals code dealing with 'invocations' which allowed the callback to know what module invoked
it.  This is not something 0.5 does or needed, so callbacks have been simplified.
2012-06-19 21:57:43 -04:00
Michael DeHaan
0972b761de Leverage cowsay if installed. 2012-05-30 19:44:00 -04:00
Michael DeHaan
db1d5b154a Fix casing/underscore convention in method name, split polling logic away from runner. 2012-05-25 19:18:02 -04:00
Seth Vidal
b42628d858 hook up --private-key to the runner 2012-05-14 16:22:05 -04:00
Michael DeHaan
07508ad535 Since host variables are becoming important, it did not make sense to sustain --override-hosts, with the ability
to create hosts that didn't have inventory information, but also existed, in various groups.
2012-05-07 23:16:20 -04:00
John Kleint
710d085def Fix non-sudo execution, add --sudo-user to ansible-playbook. 2012-05-07 19:58:16 -04:00
Michael DeHaan
05545e3735 Fixup the previous sudo_user support patch to work with playbooks. 2012-05-06 18:24:45 -04:00
Jim Richardson
93a20a33e9 first bit of getting sudo -u functionality 2012-05-06 18:24:44 -04:00
Michael DeHaan
a33320d03d Add some comments to ansible-pull and the example playbook 2012-05-01 23:22:23 -04:00
Michael DeHaan
e54eeb7629 Merge branch 'local' of https://github.com/sfromm/ansible into devel 2012-05-01 23:06:50 -04:00
Stephen Fromm
84c9caa805 Simplify ansible-pull to just invoke ansible and ansible-playbook
This eliminates the creation of runner and playbook instances and just
invokes the processes ansible and ansible-playbook.
2012-05-02 09:51:19 -07:00
Stephen Fromm
672794f586 Add ansible-pull
A first stab at a pull-based model for ansible.  This does two things:
    1. Invoke the git module via Runner to set up a git repository on the
       localhost.  It sets up Runner to use transport='local' and forces
       the inventory to just 'localhost'.
    2. Run any playbooks provided.  By default, this wants to run the
       playbook local.yml.  This also sets transport='local' and sets
       the host_list to a list: localhost, fqdn, and hostname.
The reason for setting the host_list and not using override_hosts is
because there may be plays in the playbook that are not meant for a
specific host.  That is, if the git repository is for the entire site
and not host-specific, you don't want to override hosts and apply all
plays to any given host.  This has the downside of potentially running a
play three times if the play is defined for 'hosts: all'.
2012-05-02 09:51:19 -07:00
Rafal Lewczuk
06e99ee75e Trivial fix: make PyDev happy (imports). 2012-05-01 22:56:21 -04:00
Jeroen Hoekx
029fe1273c Modify /usr/bin/ansible and playbooks to use the new async API. 2012-05-01 18:38:26 -04:00
Michael DeHaan
b9982fc17b Reinstate --extra-vars, which can do things in playbooks like:
ansible-playbook release-my-app.yml --extra-vars="version=123"

And make $version available in the playbook without re-editing the file
2012-04-26 19:57:07 -04:00
Michael DeHaan
edb8988e8e Unused imports 2012-04-21 12:04:21 -04:00
Michael DeHaan
a8d748220b Don't prompt for password info if the pattern wouldn't have matched any hosts. Also convert
Runner() usage to the new inventory model.
2012-04-21 11:46:32 -04:00
Michael DeHaan
70734f5968 Update bin/ansible to fix usage of inventory API + no more verbose option 2012-04-19 09:21:21 -04:00
Michael DeHaan
3f26a1c7f6 verbose option is not being used, so remove it. debug variable still exists. 2012-04-16 23:47:41 -04:00
Michael DeHaan
377488aa2a remove --extra-vars since the new YAML inventory stuff wasn't quite using it as designed and it is getting hard to follow
with that and SETUP_CACHE etc
2012-04-16 23:06:27 -04:00
Michael DeHaan
35fdf6636b Allow --user for playbooks, no need for port setting as can specify in inventory file now. 2012-04-16 22:15:55 -04:00
Jeroen Hoekx
c5cae87eca Refactor inventory code out of Runner.
This introduces the Inventory class.

Playbook uses the internals of Runner to limit the number of hosts to poll
asynchronously. To accomodate this, Inventory can be restricted to specific
hosts.
2012-04-16 09:16:28 +02:00
Michael DeHaan
347637339c Merge remote branch 'public/integration' into integration 2012-04-13 19:33:57 -04:00
Michael DeHaan
c3cad50075 Update manpages, fix missing variable assignment 2012-04-13 19:33:19 -04:00
Michael DeHaan
f2465e0571 Add support for specifying sudo passwords to both ansible & playbook. Nopasswd sudo is no longer required. 2012-04-13 19:06:11 -04:00
Jeroen Hoekx
d366885367 Stop async /bin/ansible if completed on all hosts. 2012-04-13 15:32:41 +02:00
Michael DeHaan
788d2bf8d1 Allow playbook to take --connection=local for easier reuse of playbook in kickstart w/o specifying connection: in
the playbook itself.  Both work.
2012-04-12 22:38:19 -04:00
Michael DeHaan
6b50078881 Add defaults to command help to avoid a certain class of user questions. 2012-04-12 21:30:49 -04:00
Stephen Fromm
0675f2511b Merge branch 'master' into localconnection
Merge the SortedOptParser bits and debug attribute commits into
localconnection.

Conflicts:
	bin/ansible
	lib/ansible/playbook.py
	lib/ansible/runner.py
	lib/ansible/utils.py
2012-04-12 11:18:35 -07:00
Michael DeHaan
4c75b7f3ad Merge commit '8ae71cc' into integration
Conflicts:
	bin/ansible
	bin/ansible-playbook
	lib/ansible/utils.py
2012-04-10 21:13:01 -04:00
Stephen Fromm
fdee1d3459 Add support to bin/ansible for --connection option 2012-04-10 16:28:43 -07:00
Seth Vidal
8ae71cc7b1 go back to using a normal optparser to add options instead of the dict
interface.

add very small subclass of OptionParser to sort the options so mdehaan is happy
2012-04-10 13:51:58 -04:00
Brad Olson
5a4d4bc051 Added usage info to bin/ansible-playbook, now shows options on bare command line. NOTE: bin/ansible outputs usage to stdout, bin/ansible-playbook to stderr. Should they be consistent? 2012-04-10 15:17:25 +00:00
Brad Olson
74b26da9ac began playbook tweak 2012-04-10 14:45:44 +00:00
Brad Olson
f840c0d167 Wired in Michael's usage string optparse style. 2012-04-09 23:12:05 +00:00
Michael DeHaan
7b9856bc0e Modification on top of skvidal's common options patch to keep options to command line tools sorted. 2012-04-06 10:59:15 -04:00
Michael DeHaan
8e1f24b822 Amend option descriptions. 2012-04-06 10:18:52 -04:00
Seth Vidal
7e50d170a8 move the bulk of the opt parsing out of ansible/ansible-playbook and into utils
for other scripts to use.
2012-04-05 17:06:23 -04:00
Michael DeHaan
2511992659 Surface module debug (-D) to /usr/bin/ansible also 2012-03-31 11:45:29 -04:00
Jeroen Hoekx
a6b8973938 Change debug flag to D instead of d.
d would be useful for --dry-run.
2012-03-31 12:48:19 +02:00
Jeroen Hoekx
d9a16a3d67 Add --debug option to ansible-playbook.
This prints remote module stderr on local stderr.
2012-03-31 09:32:13 +02:00
Michael DeHaan
6275e57718 pyflakes: Unused import / unused var 2012-03-30 23:04:02 -04:00
Michael DeHaan
3ded27fe35 Treat module args as strings everywhere to avoid unneccessary shlex and requoting 2012-03-30 22:47:58 -04:00
Michael DeHaan
f11de2f5c9 --extra-vars option for ansible-playbook
Conflicts:

	lib/ansible/playbook.py

Removed unneccessary shlex and replaced with basic split, some repurcussions in runner
that can be eliminated once we consistently pass args as a string (soon).
2012-03-30 22:29:06 -04:00
Michael DeHaan
81e3496037 Added preliminary support for --sudo to ansible, playbook support and further testing pending. 2012-03-29 01:37:06 -04:00
Tim Bielawa
5261d14aef Fix exception catching for py2.4 2012-03-29 14:19:09 -04:00
Michael DeHaan
b30ddc4520 Expose remote_port option in playbook 2012-03-28 19:31:17 -04:00
Christopher Johnston
9041ad4d83 just some minor clean up single vs double in getopt parsing 2012-03-28 14:17:20 -07:00
Christopher Johnston
f06ec76fdb add support for using an alternate remote port 2012-03-28 14:05:31 -07:00
Michael DeHaan
01e51b120a Recieved quite a few requests to run python via /usr/bin/env, so doing that. 2012-03-26 22:07:04 -04:00
Michael DeHaan
f074f1c4c4 Fixes from pyflakes 2012-03-26 21:23:28 -04:00
Michael DeHaan
45a455a805 Make /usr/bin/ansible output realtime and also delete some code! 2012-03-26 21:17:11 -04:00
Michael DeHaan
6dda6f12dc Applying callback model to runner, and using that in playbooks, so output can be more immediate in playbooks.
(Runner still does not use callbacks for default output)
2012-03-25 19:05:27 -04:00
Michael DeHaan
3052d85a6a use capital O. 2012-03-24 16:32:16 -04:00
Michael DeHaan
9df612f007 Add a "-o" override option so hosts not in a playbook can still be managed by a playbook. 2012-03-24 16:19:38 -04:00
Michael DeHaan
7ed734dfb2 move callbacks to seperate file, anticipating callbacks for Runner() as well 2012-03-21 22:18:57 -04:00
Michael DeHaan
e89131a3a2 playbooks -- Ratchet up logging prior to gating things with verbosity controls and upgrading output format 2012-03-20 22:37:51 -04:00
Michael DeHaan
a5f4ca50b8 Ratchet up logging a few notches prior to controlling w/ verbosity settings 2012-03-20 22:29:21 -04:00
Michael DeHaan
b5c62ec068 Enhance logging, way to gate verbosity levels pending. 2012-03-20 21:44:01 -04:00
Michael DeHaan
4de7bbb169 Allow conditional imports, see examples/playbook3.yml comments for a full explanation. Extensive
refactoring of playbooks now warranted, which we'll do before we move on.   This variable assignment
system makes nearly all possible magic possible, for we can use these variables however we like,
even as module names!
2012-03-19 22:42:31 -04:00
Michael DeHaan
5371a9e497 Regression tests for playbooks, logging the events they call via callbacks. 2012-03-18 19:25:56 -04:00
Michael DeHaan
9c5ec886a6 Import cleanup, plus have /bin/ansible remind you if no hosts were matched by a pattern (for instance, assume
there was a typo in the pattern)
2012-03-18 17:53:58 -04:00
Michael DeHaan
fde7de80df Remove "import *" from bin/ansible so we can use pyflakes, and remove unneeded imports in the process 2012-03-18 17:41:44 -04:00
Michael DeHaan
a4b8cdf8b3 Remove "import *"'s from bin/ansible-playbook code so pyflakes will be usable. 2012-03-18 17:32:36 -04:00
Michael DeHaan
9f6d98844e If the inventory file is EXECUTABLE, treat it as a file returning JSON, if called directly, return the host
and groups list.  If called with an argument of a host name, return the key=value data for that particular
host.
2012-03-30 19:06:14 -04:00
Michael DeHaan
db61e8f346 Fix -t tree mode so it writes out the value for each host, not everything, once again 2012-03-13 21:38:06 -04:00
Michael DeHaan
e6f175e929 Allow the SSH timeout to be passed to playbooks just like it already could with /usr/bin/ansible 2012-03-13 21:35:34 -04:00
Michael DeHaan
e3b4981feb Various additions to make sure timed out and failed hosts are taken out of the playbook even if failed
during setup, async tasks, or poll operations.  This introduced some redundancy so I've made some
notes in the code where things need to be refactored to remove them.
2012-03-13 21:30:34 -04:00
Michael DeHaan
4ae98ed92d Upgrades to error handling, now general try/catch available. 2012-03-13 20:59:05 -04:00
Michael DeHaan
09a7119e74 Annotate more files, fix missing imports messing with playbooks. Hey Tim, please test your stuff :) 2012-03-13 19:19:54 -04:00
Tim Bielawa
dfd2c6dce3 Implement friendlier error handling.
Generic AnsibleError exception + host inventory missing exception.
First shot at catching these in a generic way in bin/ansible*.
2012-03-12 23:11:54 -04:00
Michael DeHaan
86e19cd8c8 This adds async poll support to playbooks. See examples. Some more testing due + docs
but this is more or less a mirror of what /bin/ansible does.  It also has a 'fire and
forget' mode if the poll interval is left off or set to 0.
2012-03-12 20:53:10 -04:00
Michael DeHaan
db7ba87111 Add polling logic in runner such that all actions get kicked off everywhere then polling
happens only on needed hosts, allowing some hosts to fail and drop out of the running.
2012-03-11 20:54:54 -04:00
Michael DeHaan
5be1a612d3 Add async polling logic to runner. Will add to playbook shortly, have to diagnose why paramiko
is not letting async_wrapper daemonize itself when it does work fine when directly executed.
2012-03-11 18:40:35 -04:00
Michael DeHaan
85e0de5bb2 Move print statements out of playbook.py and back into CLI so we can simplify playbook operations
independent of output, and can also see all the output nicely grouped together if we want
to reformat it or make summaries of statistics.
2012-03-06 19:24:36 -05:00
Michael DeHaan
eaa7714ff8 Laying the groundwork for async mode, async status script still needs to be done, and async_wrapper
still needs to daemonize.  Then, once done, playbook can be taught how to poll async within the
timing window.
2012-03-03 12:25:56 -05:00
Michael DeHaan
cbfabcd0fb Add -i, -k, and -M to ansible-playbook CLI to match options in /usr/bin/ansible 2012-03-02 22:54:25 -05:00
Michael DeHaan
6541f338df add pyflakes target & associated fixes. Also decided to save JSON to --tree file so it can
be better used programatically.  May have to come up with another system of tree logging for
playbook if playbook decides to have tree logging.  Presumably not the highest priority.
2012-03-02 22:10:51 -05:00
Michael DeHaan
c57df6220b Add pydoc to playbook binary, fix default types for playbook '.get()' call 2012-03-02 21:20:37 -05:00
Michael DeHaan
bf967adf83 Added pydoc for functions in Cli() 2012-03-02 21:11:43 -05:00
Michael DeHaan
e9a24cdad4 Extensive refactoring of bin/ansible, moving most output functions into lib/ansible/utils to
encourage readability and make things more maintainable.
2012-03-02 21:08:48 -05:00
Michael DeHaan
b33ef0de60 Add a newline in output here, possibly considering printing top level keys flat 2012-03-02 19:52:43 -05:00
Michael DeHaan
e6a1acf756 Let "all" be an alias for "*" in patterns, fix output bug on non-command execution, make clean now removes the build dir 2012-03-02 19:44:50 -05:00
Michael DeHaan
847846af0e -p has been replaced by a required option. Various docs changes. 2012-03-01 22:10:47 -05:00
Michael DeHaan
4ce1f1dd5e README/doc/example updates to go with group support and CLI option changes.
Minimizing manpage until CLI options stabilize.
2012-03-01 21:18:32 -05:00
Christopher Johnston
d15172abdc add a -T option for setting ssh timeout in seconds 2012-03-01 16:54:17 -08:00
Christopher Johnston
2773234c3f python 2.5 does not include json so lets try to use simplejson 2012-02-29 09:30:02 -08:00
Michael DeHaan
a40ac93716 Plan to merge things back into ansible means we can simplify our code tree
by eliminating the lib/ansible/scripts file.  Ansible-playbook
doesn't have enough options to need it's own thing, and we're going to try
to work most things back into bin/ansible
2012-02-28 04:20:25 -05:00
Michael DeHaan
1427ade3af Have ansible yell if no module name is supplied 2012-02-28 04:00:31 -05:00
Michael DeHaan
edf6da5c38 Rename opts so --help looks cleaner 2012-02-28 03:57:43 -05:00
Michael DeHaan
281f96b8dd merge Seth's ansible-command script with ansible proper, so we can do nice output, one line output,
and treeish saving everywhere.

there are probably some quirks here we'll want to refine further later, for instance, we should
be able to do nicer things with "can't contact host tracebacks".
2012-02-28 03:54:41 -05:00
Michael DeHaan
0356925639 Rename ans-command to ansible-command and ans-playbook to ansible-playbook so my brain
can tab complete better
2012-02-28 22:08:31 -05:00
Michael DeHaan
430f38d54c minor option consistency 2012-02-28 02:41:32 -05:00
Michael DeHaan
ab17f6f44e Because I can't remember which options are supposed to be uppercase and which are not,
rename all of them so we can use non-conflicting lowercase.  Manpage updates pending
2012-02-28 02:38:36 -05:00
Michael DeHaan
79d91e024b Updates to ansible-playbook helper program 2012-02-28 02:25:34 -05:00
Michael DeHaan
42767b30fe Fix output on failed hosts 2012-02-28 02:11:51 -05:00
Michael DeHaan
b9b0240543 Continued ans-command output upgrades, fixed output_dest back again 2012-02-28 02:03:07 -05:00
Michael DeHaan
d6dcaefa9f Some code refactoring + output upgrades 2012-02-28 01:59:21 -05:00
Michael DeHaan
859c572de8 always show return codes (seems like a reasonable thing to do), make one line output slightly more
obvious
2012-02-28 01:46:02 -05:00
Michael DeHaan
cc2d3e0f1a Fix my error from not removing this parameter 2012-02-28 01:40:56 -05:00
Michael DeHaan
7553981ca2 ok I see output_dest was actually used but IMHO this should be something we use the shell for, i.e. output to stdout and redirect, using tee if neccessary 2012-02-28 01:39:47 -05:00
Michael DeHaan
f72bded2e5 Merge branch 'master' of github.com:mpdehaan/ansible 2012-02-28 20:44:24 -05:00
Michael DeHaan
34b72d02ea remove unused option 2012-02-28 20:44:12 -05:00
Michael DeHaan
4ba366c2d1 Require that ansible managed hosts be in the list of hosts to manage to avoid
option overload.
2012-02-28 01:34:28 -05:00
Michael DeHaan
01e5da6d0b Make /bin/ansible use the common options from lib/ansible/scripts
DRY!
2012-02-28 01:33:22 -05:00
Michael DeHaan
fb531a8dfa Minor option string relabelling, move one option from common into helper script 2012-02-28 01:01:44 -05:00
Michael DeHaan
c6eb3f1006 remove debug statement 2012-02-28 00:49:49 -05:00
Michael DeHaan
7de661dd2c Add ansible command, fix import error in runner 2012-02-28 00:45:37 -05:00
Michael DeHaan
0321afb1e3 Minor error handling tweaks (yell if no args) for ansible-command and some minor
style bits (underscores between compound words, use dest always in optparse)
2012-02-28 00:28:43 -05:00
Michael DeHaan
a3a426b4c5 Add GPLv3 license headers to new files. Approved by all contributors on mailing list. 2012-02-28 19:09:30 -05:00
Michael DeHaan
5eea593af5 Merge branch 'master' of github.com:mpdehaan/ansible 2012-02-28 19:08:37 -05:00
Michael DeHaan
be4cb64c92 Relicensing to GPLv3, all previous committers ok'd on mailing list. 2012-02-28 19:08:09 -05:00
Seth Vidal
95706af074 ans-command and scripts.py for the basic cli parser to be imported elsewhere 2012-02-28 01:12:04 -05:00
Michael DeHaan
a5039eec62 Update reporting on playbook runs. 2012-02-25 15:21:11 -05:00
Seth Vidal
ee95a5b0a4 use shlex.split() instead of split() to keep quoting sane for commands 2012-02-24 23:35:09 -05:00
Michael DeHaan
43f7dee247 Added rough sketch of what I want for playbook support. Debug heavy at the moment
as I figure out how logging/output might look.  A couple of major TODO features
also listed in the file.
2012-02-24 01:02:24 -05:00
Michael DeHaan
767517ac65 Force forks to be an integer when read by command line 2012-02-23 23:57:26 -05:00
Michael DeHaan
d079c8e5f3 Move runner out of __init__.py so it's clear what classes live where. 2012-02-23 23:28:58 -05:00
Michael DeHaan
6eda2cf383 Added initial stub for where playbooks will go, moved to common
constants file so as to not repeat constants between CLI and lib.
2012-02-23 23:26:16 -05:00
Seth Vidal
08b45d6da1 add support to prompt for ssh password on the cli 2012-02-24 18:13:11 -05:00
Michael DeHaan
530e54b3e4 Fix multiprocessing pool usage and remove stackoverflow hack 2012-02-23 22:38:51 -05:00
Michael DeHaan
4608a93de5 Added docs on split success/failure structures 2012-02-23 22:24:56 -05:00
Michael DeHaan
7eb2dd2dee Add remote setting to file, update TODO 2012-02-23 22:04:09 -05:00
Michael DeHaan
3da6370a65 use defaults better, improve/fix setup.py 2012-02-23 21:37:39 -05:00
Michael DeHaan
9681e1fa04 Add MIT license headers 2012-02-23 19:42:05 -05:00
Michael DeHaan
3807824c6d Added file copy support w/ readme updates 2012-02-23 16:07:10 -05:00
Michael DeHaan
145a024d7b Split CLI into binscript 2012-02-23 14:56:14 -05:00