コード例 #1
0
        static void Main(string[] args)
        {
            var config  = Args.Configuration.Configure <FileOp>();
            var help    = new Args.Help.HelpProvider();
            var helpDoc = help.GenerateModelHelp(config);

            Console.WriteLine(helpDoc.HelpText);
            foreach (var h in helpDoc.Members)
            {
                Console.WriteLine(h.HelpText);
            }
            var fileOp = config.CreateAndBind(args);

            if (fileOp.Action == null)
            {
                Console.WriteLine("action is null");
                return;
            }
            var method = fileOp.GetType().GetMethod(fileOp.Action);

            if (method == null)
            {
                Console.WriteLine("action not find");
                return;
            }
            method.Invoke(fileOp, null);
            //new FileMoveJoin(@"D:\mydisk320\avi\雾岛\mp4", "*.mp4", @"E:\file\名人\雾岛", "*.avi").Run();
        }
コード例 #2
0
        private static void ShowHelp(IModelBindingDefinition <ConversionOrder> argsDefinition)
        {
            var help = new Args.Help.HelpProvider().GenerateModelHelp(argsDefinition);
            var f    = new ConsoleHelpFormatter(80, 1, 5);

            Console.WriteLine(f.GetHelp(help));
        }
コード例 #3
0
        public static void WriteHelp(TextWriter outStream, string commandName)
        {
            var definition = Args.Configuration.Configure <HockeyApp.AppLoader.Model.CommandLineArgs>();
            var formatter  = new ConsoleHelpFormatterCustom(80, 1, 5, commandName);
            var help       = new Args.Help.HelpProvider().GenerateModelHelp(definition);

            formatter.WriteHelp(help, outStream);
        }
コード例 #4
0
        static void Main(string[] cmdline)
        {
            // Parse commandline into Arguments
            var       argsModelDef = Args.Configuration.Configure <Arguments>();
            Arguments args         = new Arguments();

            try
            {
                Args.Configuration.Configure <Arguments>().BindModel(args, cmdline);
            }
            catch (Exception)
            {
                args.Help = true;
            }

            // Write help message
            if (args.Help == true)
            {
                var modelHelp = new Args.Help.HelpProvider().GenerateModelHelp(argsModelDef);
                new Args.Help.Formatters.ConsoleHelpFormatter().WriteHelp(modelHelp, Console.Out);
                return;
            }

            // Setup and run client
            using (WindsorContainer container = new WindsorContainer())
            {
                Logger.Configure(x => x.UseNLogLogger());
                container.AddFacility <LoggingFacility>(f => f.LogUsing(LoggerImplementation.NLog));

                switch (args.Transport.ToLowerInvariant())
                {
                case "wcf":
                    container.Install(new WcfClientInstaller());
                    break;

                case "masstransit":
                    container.Install(new MasstransitClientInstaller());
                    break;

                default:
                    Console.WriteLine("Supported transports are Wcf and Masstransit");
                    return;
                }

                container.Register(
                    Component.For <IAssemblyRepository>().Named("Caching").ImplementedBy <CachingAssemblyRepository>().LifestyleSingleton()
                    .DependsOn(new { TTL = TimeSpan.FromSeconds(args.TTL) }),

                    Component.For <Client>().ImplementedBy <Client>().LifestyleTransient()
                    .DependsOn(args.Caching ? ServiceOverride.ForKey <IAssemblyRepository>().Eq("Caching") : null)
                    );

                Client client = container.Resolve <Client>();
                client.Run();
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: lanicon/deeply
        /// <summary>
        /// Parses the command line arguments into
        /// </summary>
        /// <param name="args">Array of command line arguments.</param>
        /// <returns>A set of options.</returns>
        private static Options ParseArguments(string[] args)
        {
            var optionModel = Args.Configuration.Configure <Options>();
            var options     = optionModel.CreateAndBind(args);

            if (options.Help)
            {
                var help      = new Args.Help.HelpProvider().GenerateModelHelp(optionModel);
                var formatter = new ConsoleHelpFormatter();

                Console.WriteLine(formatter.GetHelp(help));
            }

            return(options);
        }
コード例 #6
0
 static void Main(string[] args)
 {
     try
     {
         var definition = Args.Configuration.Configure <CommandObject>();
         var command    = definition.CreateAndBind(args);
         if (command.Help != null)
         {
             var help = new Args.Help.HelpProvider().GenerateModelHelp(definition);
             var f    = new ConsoleHelpFormatter(80, 1, 5);
             Console.WriteLine(f.GetHelp(help));
             return;
         }
         Console.WriteLine($"正在生成...");
         Console.WriteLine($"目标文件夹:{command.TargetFolder}");
         Console.WriteLine($"秘钥:{command.SecretKey}");
         Console.WriteLine($"忽略文件:{ ((command.Ignore == null || command.Ignore.Count == 0) ? "无" : string.Join(", ", command.Ignore))}");
         VersionService versionService = new VersionService(command.SecretKey);
         if (command.Ignore == null)
         {
             command.Ignore = new List <string>(2);
         }
         command.Ignore.Add(Path.GetFileNameWithoutExtension(typeof(Program).Assembly.Location));
         command.Ignore.Add(versionFileName);
         command.Ignore.Add("Zl.AutoUpgrade.Core");
         PackageVersionInfo info = versionService.ComputeVersionInfo(command.TargetFolder,
                                                                     command.Ignore.ToArray());
         XmlSerializer.SaveToFile(info, System.IO.Path.Combine(command.TargetFolder, versionFileName));
         Console.WriteLine($"生成完毕.");
     }
     catch (Exception exc)
     {
         Console.ForegroundColor = ConsoleColor.Red;
         Console.WriteLine(exc);
         Console.ResetColor();
     }
 }
コード例 #7
0
        public string GetHelp(Type parameterType)
        {
            var sb = new StringBuilder();
            if (parameterType == null)
            {
                sb.AppendLine();
                sb.AppendLine("No Options.");
            }
            else
            {
                var provider = new Args.Help.HelpProvider();
                var bindingDefinition = _argsHelper.GetArgsModelBindingDefinitionForType(parameterType);
                var modelhelp = provider.GenerateModelHelp(bindingDefinition);

                var helpFormatter = new Args.Help.Formatters.ConsoleHelpFormatter(80, 1, 5);

                using (var writer = new StringWriter(sb))
                {
                    helpFormatter.WriteHelp(modelhelp, writer);
                    writer.Close();
                }
            }
            return sb.ToString();
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: jsnape/deeply
        /// <summary>
        /// Parses the command line arguments into 
        /// </summary>
        /// <param name="args">Array of command line arguments.</param>
        /// <returns>A set of options.</returns>
        private static Options ParseArguments(string[] args)
        {
            var optionModel = Args.Configuration.Configure<Options>();
            var options = optionModel.CreateAndBind(args);

            if (options.Help)
            {
                var help = new Args.Help.HelpProvider().GenerateModelHelp(optionModel);
                var formatter = new ConsoleHelpFormatter();

                Console.WriteLine(formatter.GetHelp(help));
            }

            return options;
        }
コード例 #9
0
ファイル: Client.cs プロジェクト: CodeFork/PluginFramework-1
        static void Main(string[] cmdline)
        {
            // Parse commandline into Arguments
              var argsModelDef = Args.Configuration.Configure<Arguments>();
              Arguments args = new Arguments();
              try
              {
            Args.Configuration.Configure<Arguments>().BindModel(args, cmdline);
              }
              catch (Exception)
              {
            args.Help = true;
              }

              // Write help message
              if (args.Help == true)
              {
            var modelHelp = new Args.Help.HelpProvider().GenerateModelHelp(argsModelDef);
            new Args.Help.Formatters.ConsoleHelpFormatter().WriteHelp(modelHelp, Console.Out);
            return;
              }

              // Setup and run client
              using (WindsorContainer container = new WindsorContainer())
              {
            Logger.Configure(x => x.UseNLogLogger());
            container.AddFacility<LoggingFacility>(f => f.LogUsing(LoggerImplementation.NLog));

            switch (args.Transport.ToLowerInvariant())
            {
              case "wcf":
            container.Install(new WcfClientInstaller());
            break;

              case "masstransit":
            container.Install(new MasstransitClientInstaller());
            break;

              default:
            Console.WriteLine("Supported transports are Wcf and Masstransit");
            return;
            }

            container.Register(
              Component.For<IAssemblyRepository>().Named("Caching").ImplementedBy<CachingAssemblyRepository>().LifestyleSingleton()
            .DependsOn(new { TTL = TimeSpan.FromSeconds(args.TTL) }),

              Component.For<Client>().ImplementedBy<Client>().LifestyleTransient()
              .DependsOn(args.Caching ? ServiceOverride.ForKey<IAssemblyRepository>().Eq("Caching") : null)
            );

            Client client = container.Resolve<Client>();
            client.Run();
              }
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: hatton/geckofxHtmlToPdf
 private static void ShowHelp(IModelBindingDefinition<ConversionOrder> argsDefinition)
 {
     var help = new Args.Help.HelpProvider().GenerateModelHelp(argsDefinition);
     var f = new ConsoleHelpFormatter(80, 1, 5);
     Console.WriteLine(f.GetHelp(help));
 }
コード例 #11
0
ファイル: Program.cs プロジェクト: mlin6436/Beekeeper
        public static void Main(string[] args)
        {
            log4net.Config.XmlConfigurator.Configure();
            var kernel        = CreateKernel();
            var loggerFactory = kernel.Get <ILoggerFactory>();
            var logger        = loggerFactory.GetCurrentClassLogger();

            try
            {
                var command = Args.Configuration.Configure <Command>().CreateAndBind(args);

                if (command.Action.Equals(CommandOption.None))
                {
                    var definition = Args.Configuration.Configure <Command>();
                    var help       = new Args.Help.HelpProvider().GenerateModelHelp(definition);
                    var formatter  = new ConsoleHelpFormatter(80, 1, 5);
                    Console.WriteLine(formatter.GetHelp(help));
                }
                else if (command.Action.Equals(CommandOption.Test))
                {
                    Console.WriteLine("For testing purposes!!!");
                }
                else if (command.Action.Equals(CommandOption.CheckStatus))
                {
                    if (String.IsNullOrEmpty(command.Directory))
                    {
                        Console.WriteLine("Directory does not exist!");
                        return;
                    }

                    Console.WriteLine("Searching '{0}' ...", command.Directory);
                    var subDirectoryList = Directory.GetDirectories(command.Directory)
                                           .Select(d => new DirectoryInfo(d))
                                           .Where(d => !d.Name.Equals(SystemVolumeInformationFolder))
                                           .Where(d => !d.Name.Equals(RecycleBinFolder))
                                           .OrderBy(d => d.Name)
                                           .ToList();

                    if (!subDirectoryList.Any())
                    {
                        Console.WriteLine("The directory is empty!");
                        return;
                    }

                    Console.WriteLine("Directories found: {0}", subDirectoryList.Count);
                    Console.WriteLine();
                    foreach (var subDirectory in subDirectoryList)
                    {
                        Console.WriteLine("Searching '{0}' ...", subDirectory.Name);
                        var files = Directory.GetFiles(subDirectory.FullName, FilePostfixPattern)
                                    .Select(f => new FileInfo(f))
                                    .OrderBy(f => f.LastWriteTime)
                                    .ToList();

                        if (!files.Any())
                        {
                            Console.WriteLine("To process files found: {0}.", files.Count);
                        }
                        else
                        {
                            Console.WriteLine("To process files found: {0}, between '{1}' & '{2}'.", files.Count, files.FirstOrDefault().LastWriteTime.ToString("yyyymmdd HH:MM:ss"), files.LastOrDefault().LastWriteTime.ToString("yyyymmdd HH:MM:ss"));
                        }
                    }
                }
                else if (command.Action.Equals(CommandOption.DropDatabase))
                {
                    if (String.IsNullOrEmpty(command.Server))
                    {
                        Console.WriteLine("Server does not exist!");
                        return;
                    }

                    if (String.IsNullOrEmpty(command.Database))
                    {
                        Console.WriteLine("Database does not exist!");
                        return;
                    }

                    var databaseManager = new DatabaseManager(command.Server);
                    databaseManager.DropDatabase(command.Database);
                }
                else if (command.Action.Equals(CommandOption.RestoreDatabase))
                {
                    if (String.IsNullOrEmpty(command.Server))
                    {
                        Console.WriteLine("Server does not exist!");
                        return;
                    }

                    if (String.IsNullOrEmpty(command.Database))
                    {
                        Console.WriteLine("Database does not exist!");
                        return;
                    }

                    if (String.IsNullOrEmpty(command.DatabaseBackupFile))
                    {
                        Console.WriteLine("Database backup file does not exist!");
                        return;
                    }

                    var databaseRestoreSettings = new DatabaseRestoreSettings
                    {
                        DatabaseName   = command.Database,
                        BackupFilePath = command.DatabaseBackupFile,
                    };
                    var databaseManager = new DatabaseManager(command.Server);
                    databaseManager.RestoreDatabase(databaseRestoreSettings);
                }
                else
                {
                    Console.WriteLine("Command cannot be found!");
                    Console.WriteLine();
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                Console.WriteLine("----> EXCEPTION: {0} <----", ex.Message);
                throw;
            }
        }
コード例 #12
0
 public static void WriteHelp(TextWriter outStream, string commandName)
 {
     var definition = Args.Configuration.Configure<HockeyApp.AppLoader.Model.CommandLineArgs>();
     var formatter = new ConsoleHelpFormatterCustom(80, 1, 5, commandName);
     var help = new Args.Help.HelpProvider().GenerateModelHelp(definition);
     formatter.WriteHelp(help, outStream);
 }