Пример #1
0
        private ICommand GetCommandAndValidate(EvoOptions options)
        {
            //store the options in the container for other classes that depend on it
            _kernel.Bind<EvoOptions>().ToConstant(options);

            //get the command by name
            var cmd = _kernel.Get<ICommand>(x => x.Name == options.Command);

            if(cmd == null)
                PrintUsage("Unknown command: " + options.Command);
            else
            {
                if (!cmd.IsValid())
                {
                    if (!cmd.OutputCommandUsage(Console.Out))
                    {
                        PrintUsage("Invalid arguments for command: " + options.Command);
                    }

                    return null;
                }
            }

            return cmd;
        }
Пример #2
0
        public void SetOptions(EvoOptions options)
        {
            options.Command = _args.ObtainAndRemove(0);

            if(_settings == null)
                Parse();

            foreach (var key in _settings.Keys)
            {
                var value = _settings[key];
                if(! value.IsNullOrEmpty())
                    ParseArgumentAndValue(key, value, options);
                else
                    options.AdditionalArgs.Add(key);
            }
        }
Пример #3
0
        public void Run(IEnumerable<string> args)
        {
            _args = new List<string>(args);
            if(!CheckEmptyArgsAndOutputUsage())
                return;

            var parser = new ArgumentParser(_args);
            var options = new EvoOptions();
            parser.SetOptions(options);
            if(!parser.IsValid)
            {
                PrintUsage(parser.ErrorMessage);
                return;
            }

            ICommand cmd = GetCommandAndValidate(options);
            if (cmd == null)
                return;

            RunCommand(cmd);
        }
Пример #4
0
 public ListCommand(IFileSystem fileSystem, IDatabase database, EvoOptions options)
     : base(database, options)
 {
     FileSystem = fileSystem;
 }
Пример #5
0
        private void ParseArgumentAndValue(string arg, string value, EvoOptions options)
        {
            switch (arg)
            {
                case "server":
                    options.ServerName = value;
                    break;

                case "db":
                    options.Database = value;
                    break;

                case "username":
                    options.Username = value;
                    break;

                case "password":
                    options.Password = value;
                    break;

                case "config":
                    options.ConfigPath = value;
                    break;

                default:
                    IsValid = false;
                    ErrorMessage = "Unknown argument:" + arg;
                    break;
            }
        }
Пример #6
0
 public DropDatabaseCommand(IDatabase database, EvoOptions options)
     : base(database, options)
 {
 }
 public CreateDatabaseCommand(IDatabase database, EvoOptions options)
     : base(database, options)
 {
 }
 public CreateMigrationCommand(IFileSystem filesystem, IDatabase database, EvoOptions options)
     : base(database, options)
 {
     _filesystem = filesystem;
 }
Пример #9
0
 public CommandBase(IDatabase database, EvoOptions options)
 {
     Database = database;
     Options = options;
 }
Пример #10
0
 public MigrationFactory(EvoOptions options)
 {
     _baseDir = options.ScriptDirectory;
     _factory = new DslFactory();
     _factory.Register<MigrationBase>(new EvoEngine());
 }