예제 #1
0
        static void Main(string[] args)
        {
            {
                var showHelp = !args.Any() || args.Contains("--help");
                if (showHelp)
                {
                    ShowHelp();
                    return;
                }
            }

            try
            {
                var parsedArgs = args.Select(_ => new Argument(_)).ToList();
                Validate(parsedArgs);

                {
                    var authParser = new AwsConnectionParser();
                    var connArg    = authParser.GetFrom(parsedArgs);

                    var client = new Authenticator().Authenticate(connArg.AccessKey, connArg.SecretKey, connArg.Region);
                    Container.Register(typeof(AmazonS3Client), client);
                }

                {
                    var opParser   = new OperationParser();
                    var opArgument = opParser.GetFrom(parsedArgs);
                    var opInstance = (IOperation)Container.Resolve(opArgument.Type);

                    opInstance.Execute(opArgument.Options);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine($"{CmdName}: {e.Message}");
            }
        }
예제 #2
0
 private static IEnumerable <ArgumentDefinition> GetArgumentDefinitions()
 {
     return(Enumerable.Concat(
                AwsConnectionParser.GetArgumentDefinitions(),
                OperationParser.GetArgumentDefinitions()));
 }