コード例 #1
0
        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
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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.");
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: SteamCustomizer/Compiler
        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
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: twpol/toggl-exist
        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);
            }
        }