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);
        }
Пример #2
0
 public override bool CanExecute(ShellInput input)
 {
     if (StringComparer.InvariantCultureIgnoreCase.Equals("start", input.Command))
     {
         return(true);
     }
     return(false);
 }