getopts: allow "-option" and "--option"
This commit is contained in:
		| @ -16,21 +16,24 @@ fn parse_argument(arg: &str) -> RawArgument { | ||||
|  | ||||
|     let length = chars.len(); | ||||
|  | ||||
|     if length >= 2 && chars[0] == '-' &&  chars[1] == '-' { | ||||
|     if length >= 2 { | ||||
|  | ||||
|         if length == 2 { return RawArgument::Separator; } | ||||
|  | ||||
|         for start in 2..length  { | ||||
|             if chars[start] == '=' { | ||||
|                 let name: String = chars[2..start].iter().collect(); | ||||
|                 let value: String = chars[start+1..length].iter().collect(); | ||||
|                 return RawArgument::Option { name, value: Some(value) } | ||||
|         if chars[0] == '-' { | ||||
|             let first = if chars[1] == '-' { 2 } else { 1 }; | ||||
|  | ||||
|             for start in first..length  { | ||||
|                 if chars[start] == '=' { | ||||
|                     let name: String = chars[first..start].iter().collect(); | ||||
|                     let value: String = chars[start+1..length].iter().collect(); | ||||
|                     return RawArgument::Option { name, value: Some(value) } | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             let name: String = chars[first..].iter().collect(); | ||||
|             return RawArgument::Option { name: name, value: None } | ||||
|         } | ||||
|  | ||||
|         let name: String = chars[2..].iter().collect(); | ||||
|         return RawArgument::Option { name: name, value: None } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     RawArgument::Argument { value: arg.to_string() } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user