static void Main(string[] args) { CommandLineParser.CommandLineParser parser = new CommandLineParser.CommandLineParser(); SwitchArgument debugFlag = new SwitchArgument('d', "debug", "Enable debug mode", false); FileArgument definitionFile = new FileArgument('f', "file", "Path to skin definition file"); definitionFile.Optional = false; DirectoryArgument steamDirectory = new DirectoryArgument('s', "steam", "Path to Steam directory"); steamDirectory.Optional = false; DirectoryArgument baseDirectory = new DirectoryArgument('b', "base", "Path to directory containing skin bases. Defaults to %STEAM_FOLDER%/skins/"); SwitchArgument nobackupFlag = new SwitchArgument('n', "nobackup", "Backup old skin folder before writing new one", false); SwitchArgument activateSkinFlag = new SwitchArgument('a', "activate", "Activate skin after compilation", false); //dumbResponse = Array.Exists(args, el => el == "--dumb") || Array.Exists(args, el => el == "-q"); parser.Arguments.Add(debugFlag); parser.Arguments.Add(definitionFile); parser.Arguments.Add(steamDirectory); parser.Arguments.Add(baseDirectory); parser.Arguments.Add(nobackupFlag); parser.Arguments.Add(activateSkinFlag); #if !DEBUG try { #endif parser.ParseCommandLine(args); #if !DEBUG try { #endif Core.backupEnabled = !nobackupFlag.Value; Core.debugMode = debugFlag.Value; Core.activateSkin = activateSkinFlag.Value; Core.Compile(definitionFile.Value, steamDirectory.Value, baseDirectory.Value); #if !DEBUG } catch (Exception e) { Console.WriteLine(e.Message); Environment.Exit(2); } } catch (Exception e) { Console.WriteLine(e.Message); Environment.Exit(1); } #endif #if DEBUG Console.ReadKey(); #endif }
public void ValidCommandsShouldBeParsedCorrectly() { var stringUnderTest = "--key=value"; var commandLineParser = new CommandLineParser.CommandLineParser(); var result = commandLineParser.Parse(stringUnderTest, out var message); Assert.IsTrue(result.Count > 0); Assert.AreEqual(message, SUCCESS_MESSAGE); }
public void KeysShouldBeParsedCorrectly() { var stringUnderTest = "--key=value"; var commandLineParser = new CommandLineParser.CommandLineParser(); var result = commandLineParser.Parse(stringUnderTest, out var message); Assert.AreEqual(result.Keys.First(), "key"); Assert.AreEqual(message, SUCCESS_MESSAGE); }
public void KeysShouldContainNoDashes() { var stringUnderTest = "--key --anotherKey=value --yetAnotherKey"; var commandLineParser = new CommandLineParser.CommandLineParser(); var result = commandLineParser.Parse(stringUnderTest, out var message); Assert.IsFalse(result.Keys.Any(k => k.Contains("--"))); Assert.AreEqual(message, SUCCESS_MESSAGE); }
public void ExpandedCommandLineShouldParseCorrectly() { var stringUnderTest = "--key --anotherKey=value -- yetAnotherKey --StillAnotherKey=anotherValue"; var commandLineParser = new CommandLineParser.CommandLineParser(); var result = commandLineParser.Parse(stringUnderTest, out var message); Assert.IsTrue(result.Count == 4); Assert.AreEqual(message, SUCCESS_MESSAGE); }
public void InvalidCommandLineShouldNotParseCorrectly() { var stringUnderTest = "keyvalue=valuesomestuff"; var commandLineParser = new CommandLineParser.CommandLineParser(); var result = commandLineParser.Parse(stringUnderTest, out var message); Assert.IsTrue(result.Count == 0); Assert.AreEqual(message, FORMAT_MESSAGE); }
public void DuplicateKeysShouldNotParseCorrectly() { var stringUnderTest = "--key=value --key=value"; var commandLineParser = new CommandLineParser.CommandLineParser(); var result = commandLineParser.Parse(stringUnderTest, out var message); Assert.IsTrue(result.Count == 0); Assert.AreEqual(message, "The command: key has already been invoked."); }
static void Main(string[] args) { var config = new CLP.Arguments.FileArgument('c', "config") { ForcedDefaultValue = new FileInfo("config.json"), }; var verbose = new CLP.Arguments.SwitchArgument('v', "verbose", false); var offset = new CLP.Arguments.ValueArgument <int>('o', "offset") { ForcedDefaultValue = 0, }; var range = new CLP.Arguments.ValueArgument <int>('r', "range") { ForcedDefaultValue = 1, }; var commandLineParser = new CLP.CommandLineParser() { Arguments = { config, verbose, offset, range, } }; try { commandLineParser.ParseCommandLine(args); Main(new ConfigurationBuilder() .AddJsonFile(config.Value.FullName, true) .Build(), LoadConfig(config.Value.FullName), verbose.Value, offset.Value, range.Value) .Wait(); } catch (CLP.Exceptions.CommandLineException e) { Console.WriteLine(e.Message); } }