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); }
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); } }
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); }
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); } }