Esempio n. 1
0
            public bool TryParseArgument(string arg, ICommandLineParser parser)
            {
                if (parser.IsSwitch(arg))
                {
                    var parameter = arg.Substring(1);
                    switch (parameter.ToLowerInvariant())
                    {
                    case "?":
                    case "h":
                    case "help":
                        this.ShowHelp = true;
                        return(true);

                    case "intermediatefolder":
                        this.IntermediateFolder = parser.GetNextArgumentAsDirectoryOrError(arg);
                        return(true);

                    case "o":
                    case "out":
                        this.OutputFile = parser.GetNextArgumentAsFilePathOrError(arg);
                        return(true);

                    case "nologo":
                        this.ShowLogo = false;
                        return(true);

                    case "v":
                    case "verbose":
                        this.Messaging.ShowVerboseMessages = true;
                        return(true);

                    case "sw":
                    case "suppresswarning":
                        var warning = parser.GetNextArgumentOrError(arg);
                        if (!String.IsNullOrEmpty(warning))
                        {
                            var warningNumber = Convert.ToInt32(warning);
                            this.Messaging.SuppressWarningMessage(warningNumber);
                        }
                        return(true);
                    }
                }
                else
                {
                    if (String.IsNullOrEmpty(this.DecompileFilePath))
                    {
                        this.DecompileFilePath = parser.GetArgumentAsFilePathOrError(arg, "decompile file");
                        return(true);
                    }
                    else if (String.IsNullOrEmpty(this.OutputFile))
                    {
                        this.OutputFile = parser.GetArgumentAsFilePathOrError(arg, "output file");
                        return(true);
                    }
                }

                return(false);
            }
Esempio n. 2
0
            public bool TryParseArgument(string arg, ICommandLineParser parser)
            {
                if (parser.IsSwitch(arg))
                {
                    var parameter = arg.Substring(1).ToLowerInvariant();
                    switch (parameter)
                    {
                    case "?":
                    case "h":
                    case "help":
                        this.ShowHelp = true;
                        return(true);

                    case "arch":
                    case "platform":
                    {
                        var value = parser.GetNextArgumentOrError(arg);
                        if (Enum.TryParse(value, true, out Platform platform))
                        {
                            this.Platform = platform;
                            return(true);
                        }
                        break;
                    }

                    case "bf":
                    case "bindfiles":
                        this.BindFiles = true;
                        return(true);

                    case "bindpath":
                    {
                        var value = parser.GetNextArgumentOrError(arg);
                        if (value != null && this.TryParseBindPath(value, out var bindPath))
                        {
                            this.BindPaths.Add(bindPath);
                            return(true);
                        }
                        return(false);
                    }

                    case "cc":
                        this.CabCachePath = parser.GetNextArgumentOrError(arg);
                        return(true);

                    case "culture":
                        parser.GetNextArgumentOrError(arg, this.Cultures);
                        return(true);

                    case "contentsfile":
                        this.ContentsFile = parser.GetNextArgumentAsFilePathOrError(arg);
                        return(true);

                    case "outputsfile":
                        this.OutputsFile = parser.GetNextArgumentAsFilePathOrError(arg);
                        return(true);

                    case "builtoutputsfile":
                        this.BuiltOutputsFile = parser.GetNextArgumentAsFilePathOrError(arg);
                        return(true);

                    case "d":
                    case "define":
                        parser.GetNextArgumentOrError(arg, this.Defines);
                        return(true);

                    case "dcl":
                    case "defaultcompressionlevel":
                    {
                        var value = parser.GetNextArgumentOrError(arg);
                        if (Enum.TryParse(value, true, out CompressionLevel compressionLevel))
                        {
                            this.DefaultCompressionLevel = compressionLevel;
                            return(true);
                        }
                        return(false);
                    }

                    case "i":
                    case "includepath":
                        parser.GetNextArgumentOrError(arg, this.IncludeSearchPaths);
                        return(true);

                    case "intermediatefolder":
                        this.IntermediateFolder = parser.GetNextArgumentAsDirectoryOrError(arg);
                        return(true);

                    case "loc":
                        parser.GetNextArgumentAsFilePathOrError(arg, "localization files", this.LocalizationFilePaths);
                        return(true);

                    case "lib":
                        parser.GetNextArgumentAsFilePathOrError(arg, "library files", this.LibraryFilePaths);
                        return(true);

                    case "o":
                    case "out":
                        this.OutputFile = parser.GetNextArgumentAsFilePathOrError(arg);
                        return(true);

                    case "outputtype":
                        this.OutputType = parser.GetNextArgumentOrError(arg);
                        return(true);

                    case "pdb":
                        this.PdbFile = parser.GetNextArgumentAsFilePathOrError(arg);
                        return(true);

                    case "pdbtype":
                    {
                        var value = parser.GetNextArgumentOrError(arg);
                        if (Enum.TryParse(value, true, out PdbType pdbType))
                        {
                            this.PdbType = pdbType;
                            return(true);
                        }
                        return(false);
                    }

                    case "nologo":
                        this.ShowLogo = false;
                        return(true);

                    case "v":
                    case "verbose":
                        this.Messaging.ShowVerboseMessages = true;
                        return(true);

                    case "sval":
                        // todo: implement
                        return(true);
                    }

                    if (parameter.StartsWith("sw"))
                    {
                        this.ParseSuppressWarning(parameter, "sw".Length, parser);
                        return(true);
                    }
                    else if (parameter.StartsWith("suppresswarning"))
                    {
                        this.ParseSuppressWarning(parameter, "suppresswarning".Length, parser);
                        return(true);
                    }
                    else if (parameter.StartsWith("wx"))
                    {
                        this.ParseWarningAsError(parameter, "wx".Length, parser);
                        return(true);
                    }

                    return(false);
                }
                else
                {
                    parser.GetArgumentAsFilePathOrError(arg, "source code", this.SourceFilePaths);
                    return(true);
                }
            }
Esempio n. 3
0
            public bool TryParseArgument(string arg, ICommandLineParser parser)
            {
                if (parser.IsSwitch(arg))
                {
                    var parameter = arg.Substring(1);
                    switch (parameter.ToLowerInvariant())
                    {
                    case "?":
                    case "h":
                    case "help":
                        this.ShowHelp = true;
                        return(true);

                    case "intermediatefolder":
                        this.IntermediateFolder = parser.GetNextArgumentAsDirectoryOrError(arg);
                        return(true);

                    case "o":
                    case "out":
                        this.OutputFile = parser.GetNextArgumentAsFilePathOrError(arg);
                        return(true);

                    case "nologo":
                        this.ShowLogo = false;
                        return(true);

                    case "v":
                    case "verbose":
                        this.Messaging.ShowVerboseMessages = true;
                        return(true);
                    }

                    if (parameter.StartsWith("sw"))
                    {
                        this.ParseSuppressWarning(parameter, "sw".Length, parser);
                        return(true);
                    }
                    else if (parameter.StartsWith("suppresswarning"))
                    {
                        this.ParseSuppressWarning(parameter, "suppresswarning".Length, parser);
                        return(true);
                    }
                    else if (parameter.StartsWith("wx"))
                    {
                        this.ParseWarningAsError(parameter, "wx".Length, parser);
                        return(true);
                    }
                }
                else
                {
                    if (String.IsNullOrEmpty(this.DecompileFilePath))
                    {
                        this.DecompileFilePath = parser.GetArgumentAsFilePathOrError(arg, "decompile file");
                        return(true);
                    }
                    else if (String.IsNullOrEmpty(this.OutputFile))
                    {
                        this.OutputFile = parser.GetArgumentAsFilePathOrError(arg, "output file");
                        return(true);
                    }
                }

                return(false);
            }
Esempio n. 4
0
            public bool TryParseArgument(string arg, ICommandLineParser parser)
            {
                if (parser.IsSwitch(arg))
                {
                    var parameter = arg.Substring(1);
                    switch (parameter.ToLowerInvariant())
                    {
                    case "?":
                    case "h":
                    case "help":
                        this.ShowHelp = true;
                        return(true);

                    case "arch":
                    case "platform":
                    {
                        var value = parser.GetNextArgumentOrError(arg);
                        if (Enum.TryParse(value, true, out Platform platform))
                        {
                            this.Platform = platform;
                            return(true);
                        }
                        break;
                    }

                    case "bindfiles":
                        this.BindFiles = true;
                        return(true);

                    case "bindpath":
                    {
                        var value = parser.GetNextArgumentOrError(arg);
                        if (this.TryParseBindPath(value, out var bindPath))
                        {
                            this.BindPaths.Add(bindPath);
                            return(true);
                        }
                        break;
                    }

                    case "cc":
                        this.CabCachePath = parser.GetNextArgumentOrError(arg);
                        return(true);

                    case "culture":
                        parser.GetNextArgumentOrError(arg, this.Cultures);
                        return(true);

                    case "contentsfile":
                        this.ContentsFile = parser.GetNextArgumentAsFilePathOrError(arg);
                        return(true);

                    case "outputsfile":
                        this.OutputsFile = parser.GetNextArgumentAsFilePathOrError(arg);
                        return(true);

                    case "builtoutputsfile":
                        this.BuiltOutputsFile = parser.GetNextArgumentAsFilePathOrError(arg);
                        return(true);

                    case "d":
                    case "define":
                        parser.GetNextArgumentOrError(arg, this.Defines);
                        return(true);

                    case "i":
                    case "includepath":
                        parser.GetNextArgumentOrError(arg, this.IncludeSearchPaths);
                        return(true);

                    case "intermediatefolder":
                        this.IntermediateFolder = parser.GetNextArgumentAsDirectoryOrError(arg);
                        return(true);

                    case "loc":
                        parser.GetNextArgumentAsFilePathOrError(arg, "localization files", this.LocalizationFilePaths);
                        return(true);

                    case "lib":
                        parser.GetNextArgumentAsFilePathOrError(arg, "library files", this.LibraryFilePaths);
                        return(true);

                    case "o":
                    case "out":
                        this.OutputFile = parser.GetNextArgumentAsFilePathOrError(arg);
                        return(true);

                    case "outputtype":
                        this.OutputType = parser.GetNextArgumentOrError(arg);
                        return(true);

                    case "nologo":
                        this.ShowLogo = false;
                        return(true);

                    case "v":
                    case "verbose":
                        this.Messaging.ShowVerboseMessages = true;
                        return(true);

                    case "sval":
                        // todo: implement
                        return(true);

                    case "sw":
                    case "suppresswarning":
                        var warning = parser.GetNextArgumentOrError(arg);
                        if (!String.IsNullOrEmpty(warning))
                        {
                            var warningNumber = Convert.ToInt32(warning);
                            this.Messaging.SuppressWarningMessage(warningNumber);
                        }
                        return(true);
                    }

                    return(false);
                }
                else
                {
                    parser.GetArgumentAsFilePathOrError(arg, "source code", this.SourceFilePaths);
                    return(true);
                }
            }