public ShellInput ParseInput(string input) { if (!_commandPattern.IsMatch(input)) { return(ShellInput.Invalid(input)); } var match = _commandPattern.Match(input); var command = match.Groups[1].Value; var args = GatherArguments(match).ToArray(); if (string.IsNullOrWhiteSpace(command)) { return(ShellInput.Invalid(input)); } if (args.Length == 0) { return(ShellInput.Valid(command)); } var result = ShellInput.Valid(command); result.Arguments.AddRange(args); return(result); }
public override bool CanExecute(ShellInput input) { if (StringComparer.InvariantCultureIgnoreCase.Equals("start", input.Command)) { return(true); } return(false); }