Ejemplo n.º 1
0
        private static MigratorConfiguration Run(string[] args)
        {
            var tokenizer    = new Tokenizer();
            var tokens       = tokenizer.Tokenize(args);
            var tokenManager = new TokenManager(tokens);

            IEnumerable <ICommand> commands = GetAllCommands();

            var configuration = new MigratorConfiguration();

            while (tokenManager.HasToken())
            {
                var currentToken = tokenManager.GetToken();
                tokenManager.Consume();

                if (currentToken.Type != TokenType.Switch)
                {
                    throw new ArgumentException($"Invalid switch {currentToken.RawValue}");
                }

                var command = commands.FirstOrDefault(i => string.Equals(i.ShortOption, (string)currentToken.Value, i.CaseSensitive ? StringComparison.InvariantCulture : StringComparison.InvariantCultureIgnoreCase));
                if (command == null)
                {
                    command = commands.FirstOrDefault(i => string.Equals(i.Option, (string)currentToken.Value, i.CaseSensitive ? StringComparison.InvariantCulture : StringComparison.InvariantCultureIgnoreCase));
                }

                if (command == null)
                {
                    throw new ArgumentException($"Unkown switch {currentToken.RawValue}");
                }

                command.Execute(configuration, tokenManager);
            }
            return(configuration);
        }
Ejemplo n.º 2
0
        public void Execute(MigratorConfiguration migratorConfiguration, TokenManager tokenManager)
        {
            if (tokenManager.HasToken())
            {
                var token = tokenManager.GetToken();

                if (token.Type == TokenType.Boolean)
                {
                    migratorConfiguration.ShowVerbose = (bool)token.Value;
                    tokenManager.Consume();
                }
                else
                {
                    migratorConfiguration.ShowVerbose = true;
                }
            }
            else
            {
                migratorConfiguration.ShowVerbose = true;
            }
        }
Ejemplo n.º 3
0
        public void Execute(MigratorConfiguration migratorConfiguration, TokenManager tokenManager)
        {
            if (!tokenManager.HasToken())
            {
                throw new ArgumentException("No value provided for -d|--directory");
            }
            var token = tokenManager.GetToken();

            tokenManager.Consume();

            if (token.Type != TokenType.String)
            {
                throw new ArgumentException("No valid value provided for -d|--directory");
            }

            var dir = token.Value.ToString();

            if (!Directory.Exists(dir))
            {
                throw new DirectoryNotFoundException($"Directory '{dir}' does not exist.");
            }

            migratorConfiguration.Directory = dir;
        }
Ejemplo n.º 4
0
        public void Execute(MigratorConfiguration migratorConfiguration, TokenManager tokenManager)
        {
            if (!tokenManager.HasToken())
            {
                throw new ArgumentException("No value provided for -a|--assembly");
            }
            var token = tokenManager.GetToken();

            tokenManager.Consume();

            if (token.Type != TokenType.String)
            {
                throw new ArgumentException("No valid value provided for -a|--assembly");
            }

            var path = token.Value.ToString();

            if (!File.Exists(path))
            {
                throw new FileNotFoundException($"File '{path}' does not exist.");
            }

            migratorConfiguration.AssemblyPath = path;
        }