| 
									
										
										
										
											2016-02-03 23:01:32 +08:00
										 |  |  | ## The contents of this file are subject to the Mozilla Public License | 
					
						
							|  |  |  | ## Version 1.1 (the "License"); you may not use this file except in | 
					
						
							|  |  |  | ## compliance with the License. You may obtain a copy of the License | 
					
						
							|  |  |  | ## at http://www.mozilla.org/MPL/ | 
					
						
							|  |  |  | ## | 
					
						
							|  |  |  | ## Software distributed under the License is distributed on an "AS IS" | 
					
						
							|  |  |  | ## basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See | 
					
						
							|  |  |  | ## the License for the specific language governing rights and | 
					
						
							|  |  |  | ## limitations under the License. | 
					
						
							|  |  |  | ## | 
					
						
							|  |  |  | ## The Original Code is RabbitMQ. | 
					
						
							|  |  |  | ## | 
					
						
							|  |  |  | ## The Initial Developer of the Original Code is GoPivotal, Inc. | 
					
						
							|  |  |  | ## Copyright (c) 2007-2016 Pivotal Software, Inc.  All rights reserved. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-03 02:54:36 +08:00
										 |  |  | defmodule Parser do | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def parse(command) do | 
					
						
							|  |  |  |     {options, cmd, _} = OptionParser.parse( | 
					
						
							|  |  |  |       command, | 
					
						
							| 
									
										
										
										
											2016-02-03 06:11:54 +08:00
										 |  |  |       switches: [node: :atom, quiet: :boolean], | 
					
						
							|  |  |  |       aliases: [n: :node, q: :quiet] | 
					
						
							| 
									
										
										
										
											2016-02-03 02:54:36 +08:00
										 |  |  |     ) | 
					
						
							|  |  |  |     {clear_on_empty_command(cmd), options} | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-03 05:26:10 +08:00
										 |  |  |   # Discards entire command if first command term is empty. | 
					
						
							| 
									
										
										
										
											2016-02-03 02:54:36 +08:00
										 |  |  |   defp clear_on_empty_command(command_args) do | 
					
						
							|  |  |  |     case command_args do | 
					
						
							|  |  |  |       [] -> [] | 
					
						
							|  |  |  |       [""|_] -> [] | 
					
						
							|  |  |  |       [head|_] -> command_args | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |