Commit Graph

1453 Commits

Author SHA1 Message Date
Mitchell Hashimoto 4ec63bc2ef command: deal with plan states 2015-02-23 15:13:54 -08:00
Mitchell Hashimoto 579f102f37 command: start migrating to new state package 2015-02-23 15:13:54 -08:00
Mitchell Hashimoto c2593f6ada terraform: re-enable dot-graphs 2015-02-19 23:00:29 -08:00
Mitchell Hashimoto b1e5b32322 terraform: Graph returns *Graph for now 2015-02-19 12:08:32 -08:00
Radek Simko 6c8dd9e8fa Unreachable code removed 2015-02-18 18:28:09 +00:00
lalyos 92540d3d88 fixing version numbers RCs should be labeled x.x.x-rcx
see conversation with ryanuber: https://github.com/hashicorp/go-checkpoint/issues/2#issuecomment-73199209
2015-02-07 16:56:56 +01:00
Emil Hessman b40c2fe997 command: fix test failure on Windows
URLs are `/`-based. Windows path Separator is `\`.
Convert `\` in test fixture path to `/` with filepath.ToSlash
such that proper URLs are constructed even on Windows.

Fixes a test failure on Windows.
2015-01-28 08:13:44 +01:00
Emil Hessman 92e68c1ee6 command: fix test failure on Windows
Adjust the laddr argument to net.Listen to the form host:port,
as documented for net.Dial.

Fixes a test failure on Windows.
2015-01-28 08:10:52 +01:00
Phil Kates b211d69dde Fix typo in refresh command error
Noticed this while I was digging around to see how the commands work.
2015-01-17 15:43:04 -08:00
Mitchell Hashimoto fb3f10efb0 command/apply: ask for user variables before validation [GH-736] 2015-01-16 10:46:38 -08:00
Mitchell Hashimoto 90138825a2 command/apply: don't init if no args given [GH-780]
I really don't know how to unit test this since I don't know what input
triggers this except that it has been reporting a few times in the wild.
2015-01-16 10:22:20 -08:00
Armon Dadgar b69239e7f8 command/meta: Adding additional nil guards 2015-01-07 13:28:15 -08:00
Armon Dadgar 408ae62306 command/apply: Handle remote state in a plan file 2015-01-07 13:08:32 -08:00
Kevin van Zonneveld 07505ed159 Fix typo: expacts -> expects 2015-01-03 17:59:55 +01:00
Emil Hessman fc36b1cd94 command: vet fix
Fixes the following vet report:

command/remote.go:165: wrong number of args for format in Sprintf call: 1 needed but 2 args
2014-12-17 13:02:19 +01:00
Armon Dadgar cce881aadd command/show: enable printing of remote state 2014-12-10 13:27:11 -08:00
Armon Dadgar 07e5f3ff41 command/remote: Improve UI output for remote 2014-12-10 13:27:11 -08:00
Armon Dadgar bcd348aebd command: updating tests 2014-12-10 13:27:10 -08:00
Armon Dadgar 6a84be0686 command: updating for pluggable backends 2014-12-10 13:27:10 -08:00
Armon Dadgar ba01e27026 command: Refresh remote state when loading 2014-12-10 13:27:09 -08:00
Armon Dadgar dab47b0d48 command/plan: remote enable 2014-12-10 13:27:09 -08:00
Armon Dadgar b6265cf1a2 command/refresh: Remote enable 2014-12-10 13:27:09 -08:00
Armon Dadgar 0fb87e499d command: Meta provides the state output path 2014-12-10 13:27:09 -08:00
Armon Dadgar 0c9436f37b command/output: Remote enable 2014-12-10 13:27:09 -08:00
Armon Dadgar 53704db4ee command: Enable reading remote-enabled state 2014-12-10 13:27:09 -08:00
Armon Dadgar bf10111745 command/apply: Move state persistence to Meta 2014-12-10 13:27:09 -08:00
Armon Dadgar c24123ff8a command/remote: Adding tests 2014-12-10 13:27:08 -08:00
Armon Dadgar b4b44dd0a8 command/remote: Refresh state before the disable 2014-12-10 13:27:08 -08:00
Armon Dadgar 6e7cffd60b command/init: Only initialize a blank state with remote 2014-12-10 13:27:08 -08:00
Armon Dadgar 9168a0f1ce command: Simplify push/pull, depend on remote command for setup 2014-12-10 13:27:08 -08:00
Armon Dadgar 1945e2099a command/remote: Use PersistState 2014-12-10 13:27:08 -08:00
Armon Dadgar 4e44443aa3 command/remote: Working on the details 2014-12-10 13:27:08 -08:00
Armon Dadgar b3871c0c5a command/remote: Adding skeleton 2014-12-10 13:27:08 -08:00
Armon Dadgar 09d7fb7c27 command: cleanup test function names 2014-12-10 13:27:08 -08:00
Armon Dadgar 7ba0c003f2 command/push: Allow existing state file to enable remote 2014-12-10 13:27:08 -08:00
Armon Dadgar 38002904f4 command/push: Adding the push command 2014-12-10 13:27:08 -08:00
Armon Dadgar 722a885113 command/init: Testing remote flags 2014-12-10 13:27:07 -08:00
Armon Dadgar 34df217514 command/pull: Adding the pull command 2014-12-10 13:27:07 -08:00
Armon Dadgar d332b8ad58 remote: implement refresh state 2014-12-10 13:27:07 -08:00
Armon Dadgar 29b3310a49 command/init: integrate remote state storage 2014-12-10 13:27:06 -08:00
Armon Dadgar 5b745e5d46 command: Run validation before asking for input. Fixes #602 2014-12-08 18:32:03 -08:00
Emil Hessman 31dd7d8391 command/init: use a more semantic name to identiy the test routine for issue 518 2014-11-20 19:17:04 +01:00
Emil Hessman 82e4bab178 command/init: test for issue 518 2014-11-04 21:19:39 +01:00
Panagiotis Moustafellos 3d51bae4b2 switch phrasing 2014-10-15 18:57:24 +03:00
Panagiotis Moustafellos 08515edc43 fixed typo on terraform destroy 2014-10-15 11:17:56 +03:00
Mitchell Hashimoto 70191d22a6 Add checkpoint 2014-10-13 14:05:43 -07:00
Mitchell Hashimoto 5f6fe1f931 command: put the modules in ".terraform/modules"
This also fixes a case where tests wre leaking files
2014-10-13 12:05:28 -07:00
Mitchell Hashimoto c6a165f8c6 command: prov UI should trim only right spaces 2014-10-12 09:59:08 -07:00
Mitchell Hashimoto fbeb99ee83 command: make sure the output has a line from a provisioner to output 2014-10-11 17:40:28 -07:00
Mitchell Hashimoto 8fc134caa1 command/destroy: don't show outputs 2014-10-11 17:37:28 -07:00
Mitchell Hashimoto bb698217f8 command: split on \r too 2014-10-11 17:35:32 -07:00
Mitchell Hashimoto 0914e17a2a command/apply: more than one ctrl-c properly exits immediately 2014-10-11 13:23:15 -07:00
Mitchell Hashimoto dac5f0e3df command/show: update help 2014-10-11 12:57:47 -07:00
Mitchell Hashimoto 069f758efb command/show: show default state with no args [GH-349] 2014-10-11 12:56:55 -07:00
Mitchell Hashimoto 16b023bd2b command: ask for the proper level of input 2014-10-08 10:29:54 -07:00
Mitchell Hashimoto 28cd738edc command: provisioner output should prefix every line 2014-10-05 23:29:13 -07:00
Mitchell Hashimoto c1fbf46a33 command: send the provisioner output to the prompt 2014-10-04 16:33:47 -07:00
Mitchell Hashimoto 063e727491 command: compilej:wq 2014-10-04 16:24:57 -07:00
Mitchell Hashimoto b2342866c9 command: UIOutput is functinal 2014-10-04 10:25:54 -07:00
Mitchell Hashimoto 6d9463bfa8 command: set UIOutput 2014-10-04 10:20:35 -07:00
Mitchell Hashimoto a5f70ead2d command: destroy should ask for confirmation always 2014-10-03 16:08:50 -07:00
Mitchell Hashimoto edbdad8fdb command: nil-check for instance state when showing state 2014-10-02 17:48:51 -07:00
Mitchell Hashimoto 95f43d8230 command/apply: if with plan, don't ask for input [GH-346] 2014-10-01 08:43:00 -07:00
Mitchell Hashimoto 817f0d9f30 command: don't ask for input if terraform.tfvars file given [GH-346] 2014-10-01 08:37:57 -07:00
Mitchell Hashimoto 2131e4ffd2 command: fix failing tests 2014-09-30 22:11:55 -07:00
Mitchell Hashimoto 245c1ce05a command: enable destroy 2014-09-30 22:01:11 -07:00
Mitchell Hashimoto ab9dd71bcb command/destroy: first steps 2014-09-30 21:49:24 -07:00
Mitchell Hashimoto 260c5301e6 command/apply: update usage 2014-09-29 15:57:35 -07:00
Mitchell Hashimoto 3572b8ff2f command/apply: allow `terraform apply SOURCE` as shortcut for init 2014-09-29 15:55:28 -07:00
Mitchell Hashimoto a7c321a028 helper/scheam: support UI defaults 2014-09-29 14:00:35 -07:00
Mitchell Hashimoto b32470f070 command: accept defaults for UI 2014-09-29 13:51:16 -07:00
Mitchell Hashimoto 99044a1f14 Add descriptions for AWS inputs 2014-09-29 13:30:28 -07:00
Mitchell Hashimoto 901c1448b4 command: make the UI a look nicer 2014-09-29 13:12:06 -07:00
Mitchell Hashimoto 63453f3f1a command: apply and refresh ask for input 2014-09-29 12:46:58 -07:00
Mitchell Hashimoto af548c9b53 command/plan: ask for input 2014-09-29 11:24:16 -07:00
Mitchell Hashimoto 5b0859b3f5 command: Input tells us whether we should ask for input or not 2014-09-29 11:11:35 -07:00
Mitchell Hashimoto a918833edd command: UIInput implementation to ask via CLI 2014-09-29 10:56:01 -07:00
Mitchell Hashimoto 3941dbac5d fmt 2014-09-28 11:51:49 -07:00
Mitchell Hashimoto e041a52dab command: test init 2014-09-27 09:23:02 -07:00
Mitchell Hashimoto f4cc2c066f command: init works at a basic level 2014-09-26 16:30:49 -07:00
Mitchell Hashimoto 615192a6c4 command: init command start 2014-09-26 16:04:10 -07:00
Mitchell Hashimoto e5e51d7b17 command: state output is well formatted for modules 2014-09-25 19:25:10 -07:00
Mitchell Hashimoto 5f791051a6 command: render new modules properly 2014-09-25 14:52:06 -07:00
Mitchell Hashimoto 8c17062638 command: plan shows module-level, can control depth 2014-09-24 22:54:51 -07:00
Mitchell Hashimoto 72e6f97093 terraform: support graphing modules 2014-09-24 17:36:27 -07:00
Mitchell Hashimoto a36b3e1ec5 command: tests pass 2014-09-24 15:48:46 -07:00
Mitchell Hashimoto 672bf58337 command: compiles, tests don't pass yet 2014-09-24 14:37:24 -07:00
Mitchell Hashimoto 6f7c3caab3 command: get supports -update 2014-09-22 11:18:49 -07:00
Mitchell Hashimoto 1b8426f7ff command: Get works 2014-09-22 11:15:27 -07:00
Mitchell Hashimoto ed538a9594 command: Get command, not functional yet. Converted to use modules. 2014-09-22 10:56:50 -07:00
Mitchell Hashimoto 82e92e7024 command: fmt 2014-09-21 09:42:48 -07:00
Mitchell Hashimoto 91eb3c73fc command: fix failing tests 2014-09-18 18:16:09 -06:00
Mitchell Hashimoto 15564b04a5 command: tests pass 2014-09-18 10:40:35 -07:00
Mitchell Hashimoto 9b2b3a963f ResourceDiff => InstanceDiff 2014-09-17 16:33:24 -07:00
Mitchell Hashimoto cdad3036ae command: closer to compiling 2014-09-17 11:15:07 -07:00
Mitchell Hashimoto b5daa2f41e command: make the default var-file flag easier 2014-09-08 20:57:08 -07:00
Mitchell Hashimoto 546865e1ee command: make sure errors from flag go to UI [GH-269] 2014-09-08 20:56:30 -07:00
Mitchell Hashimoto 7b96a9fa06 command: expand ~ manually in var-file [GH-273] 2014-09-08 20:43:59 -07:00
Mitchell Hashimoto 69294b1ba3 command: adhere to -no-color, fix test [GH-250] 2014-09-08 20:41:10 -07:00
AJ Bourg aefa4b2399 expacts -> expects. (minor) 2014-09-04 16:33:05 -06:00
Mitchell Hashimoto 2caf33f97f command/apply: keep track of default variables separately [GH-153] 2014-08-24 21:40:58 -07:00
Mitchell Hashimoto bc1947124e command: fix data race on Ui 2014-08-19 10:22:26 -07:00
Mitchell Hashimoto 04975827ac Remove all traces of libucl 2014-08-19 09:57:04 -07:00
Alex Gaynor 46154ca1d3 Fixed a ton of typos in docs and comments 2014-08-07 00:19:56 -07:00
Mitchell Hashimoto 642fed0356 command: terraform.tfvars loaded by default if it exists 2014-08-05 09:32:01 -07:00
Mitchell Hashimoto d28e5a1638 dos2unix 2014-07-28 10:43:00 -07:00
Mitchell Hashimoto b172f45b94 command: make state unexported on Meta 2014-07-27 22:58:35 -07:00
Mitchell Hashimoto 80ce9ad513 command: f.Close instead of defer 2014-07-27 22:56:55 -07:00
Armon Dadgar 16ef3f5733 command: Testing the -backup feature 2014-07-27 23:38:41 -04:00
Armon Dadgar f26f432f4c command/refresh: Testing backup option 2014-07-27 22:58:12 -04:00
Armon Dadgar 54cc66367d command: Adding backup of state file 2014-07-27 18:09:04 -04:00
Mitchell Hashimoto 68c0bf3ced command: add provisioning output 2014-07-27 09:12:16 -07:00
Mitchell Hashimoto 9759606989 command/apply: check if state non-nil for interrupt 2014-07-26 21:28:42 -07:00
Mitchell Hashimoto 0f45ebbdc3 command: better UI for showing completion of steps 2014-07-26 21:20:31 -07:00
Mitchell Hashimoto 2094326c10 command: plan that requires destroy and new is "-/+" 2014-07-26 21:03:06 -07:00
Mitchell Hashimoto 795142c43c command/apply: -refresh flag 2014-07-26 17:51:16 -07:00
Mitchell Hashimoto ef6fba754d command: refactor so Context never plans 2014-07-26 17:51:15 -07:00
Mitchell Hashimoto 82e7d58250 command/apply: -init is gone
/cc @pearkes - hurray!
2014-07-26 14:44:05 -07:00
Mitchell Hashimoto 79033f240f command: error if variables present when creating context from plan 2014-07-26 14:32:09 -07:00
Mitchell Hashimoto 9aa88e9a1c command: show tainted state properly 2014-07-24 08:49:51 -07:00
Mitchell Hashimoto 1d3e28d7ee command: remove println 2014-07-24 08:49:49 -07:00
Mitchell Hashimoto fa175113fe config: case sensitive templates 2014-07-23 08:38:43 -07:00
Mitchell Hashimoto dc0ec11ec9 command: fix tests 2014-07-22 19:43:09 -07:00
Mitchell Hashimoto 51b2a8e7f2 command: output tainted state to CLI 2014-07-22 12:36:32 -07:00
Mitchell Hashimoto 7b4119027a command: -var-file works 2014-07-18 14:00:40 -07:00
Mitchell Hashimoto 3534470ca3 command: -var flag works 2014-07-18 11:37:27 -07:00
Mitchell Hashimoto 3276ae313f terraform: PostApply should get error result from Apply 2014-07-17 15:38:50 -07:00
Mitchell Hashimoto f78f97647a command/apply: clearer that in error state is updated 2014-07-17 15:18:00 -07:00
Mitchell Hashimoto ba4435f99c command/apply: show add/remove/change count for apply 2014-07-17 15:14:45 -07:00
Mitchell Hashimoto 541d23eea0 command: can set Color to false explicitly 2014-07-17 09:34:32 -07:00
Armon Dadgar 104b28e19e terraform: Remove ResourceConnectionInfo, use raw map 2014-07-15 12:34:07 -07:00
Mitchell Hashimoto 6c8c09c784 command/*: only Plan on the Apply 2014-07-14 11:48:03 -07:00
Mitchell Hashimoto ad3c0593a3 terraform: GraphDot 2014-07-14 11:34:52 -07:00
Mitchell Hashimoto dde0f0f8df command/version: use Meta 2014-07-13 10:42:18 -07:00
Mitchell Hashimoto 3f803cb75c command/output: protect againts blank params 2014-07-13 10:29:31 -07:00
Mitchell Hashimoto 2caff709d6 comand/output 2014-07-13 10:25:42 -07:00
Mitchell Hashimoto 52d29a6ecf command/apply: outputs 2014-07-13 09:34:35 -07:00
Mitchell Hashimoto 00ebedb4fb command: better whitespace in state formatting 2014-07-13 09:23:59 -07:00
Mitchell Hashimoto 2bf6f380dc command/show: fix tests 2014-07-13 09:22:23 -07:00
Mitchell Hashimoto 687c5cd35c command/show: remove unused fields in struct 2014-07-13 09:21:44 -07:00
Mitchell Hashimoto 4bc00fa047 command/apply: cleaner output 2014-07-13 09:20:27 -07:00
Mitchell Hashimoto 9b090a5505 command/apply: use new state formatting 2014-07-12 21:02:53 -07:00
Mitchell Hashimoto 79c60e0331 command/*: colors on error messages (red) 2014-07-12 20:59:16 -07:00
Mitchell Hashimoto 3a851bece0 command: convert all to use the new Meta thing 2014-07-12 20:37:30 -07:00
Mitchell Hashimoto 6c736bd3c4 command: introduce Meta and "-no-color" option 2014-07-12 20:21:46 -07:00
Mitchell Hashimoto dbc1c63d79 command/show 2014-07-12 19:47:31 -07:00
Mitchell Hashimoto 3d35158170 command: update synopsis to be better 2014-07-12 19:28:38 -07:00
Mitchell Hashimoto 8e100869a4 command/graph: can graph plans 2014-07-12 19:25:50 -07:00
Mitchell Hashimoto b4b116a018 command/plan: output while refreshing since that can take awhile 2014-07-12 17:17:03 -07:00
Mitchell Hashimoto c615afc097 command/apply: improved output, still not done 2014-07-12 17:03:55 -07:00
Mitchell Hashimoto e0d3098d50 command/plan: better output 2014-07-12 16:35:59 -07:00
Mitchell Hashimoto 832211c17a command/plan: nice plan formatting 2014-07-12 16:32:48 -07:00
Mitchell Hashimoto e39378b254 command/refresh: better comment 2014-07-11 22:01:33 -07:00
Mitchell Hashimoto ff75d15f51 command/refresh: better error message if bad state 2014-07-11 22:00:55 -07:00
Mitchell Hashimoto 9a6f1e594b command/refresh: default state path, optional args 2014-07-11 21:56:43 -07:00
Mitchell Hashimoto 2c77837a64 command/apply: optional arg, default to pwd for config dir 2014-07-11 21:32:34 -07:00
Mitchell Hashimoto abc6df2a7d command/apply: default state path, only one optional arg 2014-07-11 21:30:40 -07:00
Mitchell Hashimoto 6bf543cb07 command/plan: default state path 2014-07-11 21:03:56 -07:00
Mitchell Hashimoto 04f7281e8c command/plan: can take no args and default to pwd for config 2014-07-11 20:51:26 -07:00
Mitchell Hashimoto 235a253848 command/graph: no args means pwd 2014-07-11 20:41:47 -07:00
Mitchell Hashimoto 8f7244695f command/graph: takes config dir as arg 2014-07-11 20:38:03 -07:00
Mitchell Hashimoto 6a7e3668a2 command: apply saves state even if error occurs 2014-07-07 21:20:48 -07:00
Mitchell Hashimoto d3d45ca064 command: fix some issues with refresh, tests passing 2014-07-07 21:12:12 -07:00
Mitchell Hashimoto 43889a8c59 command: validate context 2014-07-03 13:12:45 -07:00
Mitchell Hashimoto 0e88867052 Compile 2014-07-03 12:01:20 -07:00
Mitchell Hashimoto a6ae7230d1 command: use new API 2014-07-03 11:46:40 -07:00
Mitchell Hashimoto d23733263f command: validate configuration, test for it 2014-07-02 21:16:36 -07:00
Mitchell Hashimoto 5608175c13 command: fix build 2014-07-02 19:45:00 -07:00
Mitchell Hashimoto f1dce8f076 command: stabilize tests 2014-07-02 17:08:58 -07:00
Mitchell Hashimoto 5aa6ada589 command/apply: Ctrl-C works 2014-07-02 17:01:02 -07:00
Mitchell Hashimoto c493d60358 terraform: register gob type that might be in config 2014-07-02 11:28:23 -07:00
Jack Pearkes 1560d5ab98 plan: add failing test case for nested object plan file 2014-07-02 10:41:02 -07:00
Mitchell Hashimoto 93fbb9ea8f command/graph 2014-07-01 10:02:13 -07:00
Mitchell Hashimoto a7d3cb843f command/plan: help text 2014-07-01 09:12:35 -07:00
Mitchell Hashimoto 64363da9dd command/plan: add -destroy flag to plan a destroy 2014-07-01 09:12:05 -07:00
Mitchell Hashimoto 2729050d19 command: fix failing tests 2014-06-30 20:49:49 -07:00
Mitchell Hashimoto 5c836ab861 terraform: PlanOpts for expanding plan configuration 2014-06-28 13:10:11 -07:00
Mitchell Hashimoto fe79e5df03 command/apply: can take a plan as an argument 2014-06-27 14:43:33 -07:00
Mitchell Hashimoto 36ccb3408d command/refresh: test the -out flag 2014-06-27 11:12:45 -07:00
Mitchell Hashimoto 1819b6fb34 command/refresh 2014-06-27 11:09:01 -07:00
Mitchell Hashimoto f820290862 command: -out flag to plan command 2014-06-26 22:23:51 -07:00
Mitchell Hashimoto 6b765328c2 command: UI in Apply 2014-06-26 22:13:54 -07:00
Mitchell Hashimoto 8d4aeb96c0 command: add preapply to UI so we can see that 2014-06-26 22:11:04 -07:00
Mitchell Hashimoto d3f2547f86 command: concurrent UI 2014-06-26 22:01:05 -07:00
Mitchell Hashimoto 23de2fc2f3 command: UiHook outputs for diffs 2014-06-26 17:18:46 -07:00
Mitchell Hashimoto ae6b85e11b terraform: diff hooks 2014-06-26 17:17:10 -07:00
Mitchell Hashimoto 01319e1dc9 Ui hook 2014-06-26 17:05:21 -07:00
Mitchell Hashimoto 0a8cebdb82 command/plan: refresh by default 2014-06-26 09:56:29 -07:00
Mitchell Hashimoto d64ba66edb command: adhere to new API 2014-06-25 18:22:42 -07:00
Mitchell Hashimoto 84cf644a30 command: apply uses the new plan structure 2014-06-20 12:51:42 -07:00
Mitchell Hashimoto bff4b8a58c command: plan 2014-06-20 11:47:02 -07:00
Mitchell Hashimoto 74d75e87d6 command/diff: output if no changes 2014-06-19 14:58:30 -07:00
Mitchell Hashimoto c646c9c9ad command/diff: whitespace 2014-06-19 13:51:28 -07:00
Mitchell Hashimoto 26550b9ddd command/diff: use state 2014-06-19 13:51:05 -07:00
Mitchell Hashimoto 344fd805f4 command/apply: fail if state doesn't exist and no -init 2014-06-19 12:17:56 -07:00
Mitchell Hashimoto 879921d70f command/apply: test that diff runs with existing state 2014-06-19 12:13:47 -07:00
Mitchell Hashimoto d4994b5d44 command/apply: read existing state 2014-06-19 12:12:24 -07:00
Mitchell Hashimoto 82af81b606 command: tests for apply 2014-06-18 21:36:44 -07:00
Mitchell Hashimoto 8aa99687c3 command/apply: basic implementation 2014-06-18 16:42:13 -07:00
Mitchell Hashimoto c81e3f4db7 command/diff: show diff string output 2014-06-10 11:34:08 -07:00
Mitchell Hashimoto 6c6bc0ae3e commands/diff: starting up, got it loading a Terraform 2014-06-09 11:53:41 -07:00
Mitchell Hashimoto 046e80361b commands: start apply 2014-05-24 12:27:58 -07:00
Mitchell Hashimoto a4a4e3784d Implement CLI, version command 2014-05-24 12:04:43 -07:00