Ejemplo n.º 1
0
        public static ParsedCommands ParseUntrustedCommands(string cmdLineString)
        {
            var commands = new ParsedCommands();

            var parsedArgs = Parse(cmdLineString);

            foreach (var kvp in parsedArgs)
            {
                Debug.WriteLine("arg {0} = {1}", kvp.Key, kvp.Value);

                var command = new ParsedCommand();

                switch (kvp.Key)
                {
                case "-Directory":
                    command.Type = ParsedCommandType.OpenDirectory;
                    break;

                default:
                    command.Type = ParsedCommandType.Unkwon;
                    break;
                }

                command.Payload = kvp.Value;
                commands.Add(command);
            }

            return(commands);
        }
        public static ParsedCommands ParseUntrustedArgs(string cmdLineString)
        {
            ParsedCommands commands = new ParsedCommands();

            Parse(cmdLineString);
            foreach (KeyValuePair <string, string> kvp in ParsedArgs)
            {
                Debug.WriteLine("arg {0} = {1}", kvp.Key, kvp.Value);
                ParsedCommand command = new ParsedCommand();
                switch (kvp.Key)
                {
                case "SelectItem":
                    command.Type = ParsedCommandType.SelectItem;
                    break;

                case "LoadConfig":
                    command.Type = ParsedCommandType.LoadConfig;
                    break;

                case "LoadFile":
                    command.Type = ParsedCommandType.LoadFile;
                    break;

                default:
                    command.Type = ParsedCommandType.Unknown;
                    break;
                }
                command.Payload = kvp.Value;
                commands.Add(command);
            }
            return(commands);
        }
Ejemplo n.º 3
0
        private static ParsedCommands ParseSplitArguments(List <KeyValuePair <string, string[]> > parsedArgs)
        {
            var commands = new ParsedCommands();

            foreach (var kvp in parsedArgs)
            {
                Debug.WriteLine("arg {0} = {1}", kvp.Key, kvp.Value);

                var command = new ParsedCommand();

                switch (kvp.Key)
                {
                case string s when "Directory".Equals(s, StringComparison.OrdinalIgnoreCase):
                    command.Type = ParsedCommandType.OpenDirectory;
                    break;

                case string s when "OutputPath".Equals(s, StringComparison.OrdinalIgnoreCase):
                    command.Type = ParsedCommandType.OutputPath;
                    break;

                case string s when "Select".Equals(s, StringComparison.OrdinalIgnoreCase):
                    command.Type = ParsedCommandType.SelectItem;
                    break;

                case string s when "Tag".Equals(s, StringComparison.OrdinalIgnoreCase):
                    command.Type = ParsedCommandType.TagFiles;
                    break;

                default:
                    //case "Cmdless":
                    try
                    {
                        if (kvp.Value[0].StartsWith("::{", StringComparison.Ordinal) || kvp.Value[0].StartsWith("shell:", StringComparison.OrdinalIgnoreCase))
                        {
                            command.Type = ParsedCommandType.ExplorerShellCommand;
                        }
                        else if (Path.IsPathRooted(kvp.Value[0]))
                        {
                            command.Type = ParsedCommandType.OpenPath;
                        }
                        else
                        {
                            command.Type = ParsedCommandType.Unknown;
                        }
                    }
                    catch (Exception ex)
                    {
                        Debug.WriteLine($"Exception in CommandLineParser.cs\\ParseUntrustedCommands with message: {ex.Message}");
                        command.Type = ParsedCommandType.Unknown;
                    }
                    break;
                }

                command.Args.AddRange(kvp.Value);
                commands.Add(command);
            }

            return(commands);
        }
Ejemplo n.º 4
0
        public static ParsedCommands ParseUntrustedArgs(string cmdLineString)
        {
            ParsedCommands commands = new ParsedCommands();

            Parse(cmdLineString);

            foreach (KeyValuePair <string, string> kvp in ParsedArgs)
            {
                commands.Add(kvp);
            }
            return(commands);
        }
Ejemplo n.º 5
0
        private static ParsedCommands ParseSplitArguments(List <KeyValuePair <string, string> > parsedArgs)
        {
            var commands = new ParsedCommands();

            foreach (var kvp in parsedArgs)
            {
                Debug.WriteLine("arg {0} = {1}", kvp.Key, kvp.Value);

                var command = new ParsedCommand();

                switch (kvp.Key)
                {
                case "-Directory":
                    command.Type = ParsedCommandType.OpenDirectory;
                    break;

                default:
                    //case "-Cmdless":
                    try
                    {
                        if (kvp.Value.StartsWith("::{") || kvp.Value.StartsWith("shell:"))
                        {
                            command.Type = ParsedCommandType.ExplorerShellCommand;
                        }
                        else if (Path.IsPathRooted(kvp.Value))
                        {
                            command.Type = ParsedCommandType.OpenPath;
                        }
                        else
                        {
                            command.Type = ParsedCommandType.Unknown;
                        }
                    }
                    catch (Exception ex)
                    {
                        Debug.WriteLine($"Exception in CommandLineParser.cs\\ParseUntrustedCommands with message: {ex.Message}");
                        command.Type = ParsedCommandType.Unknown;
                    }
                    break;
                }

                command.Payload = kvp.Value;
                commands.Add(command);
            }

            return(commands);
        }