Ejemplo n.º 1
0
 public Push(
     ILoggerFactory loggerFactory,
     RoboNuGetFile roboNuGetFile,
     IFileSearch fileSearch,
     IProcessExecutor processExecutor
     ) : base(loggerFactory)
 {
     _roboNuGetFile   = roboNuGetFile;
     _fileSearch      = fileSearch;
     _processExecutor = processExecutor;
 }
Ejemplo n.º 2
0
 public Pack(
     ILoggerFactory loggerFactory,
     RoboNuGetFile roboNuGetFile,
     IFileSearch fileSearch,
     IIndex <SoftKeySet, IConsoleCommand> commands,
     IProcessExecutor processExecutor
     ) : base(loggerFactory)
 {
     _roboNuGetFile   = roboNuGetFile;
     _fileSearch      = fileSearch;
     _commands        = commands;
     _processExecutor = processExecutor;
 }
Ejemplo n.º 3
0
        private static async Task Main(string[] args)
        {
            var configuration = RoboNuGetFile.Load();
            var loggerFactory = new LoggerFactory
            {
                Observers =
                {
                    ConsoleTemplateRx.Create(new ConsoleTemplateRenderer())
                }
            };

            using (var container = InitializeContainer(configuration, loggerFactory))
                using (var scope = container.BeginLifetimeScope())
                {
                    var logger   = scope.Resolve <ILoggerFactory>().CreateLogger("ConsoleTemplateTest");
                    var executor = scope.Resolve <ICommandLineExecutor>();

                    // main loop

                    await executor.ExecuteAsync("cls", CancellationToken.None);

                    do
                    {
                        logger.ConsoleMessage(m => m.Prompt());
                        var commandLine = Console.ReadLine();

                        if (commandLine.IsNullOrEmpty())
                        {
                            //logger.ConsoleParagraph(p => p.ConsoleSpan(ConsoleColor.Red, null, _ => "Invalid command name."));
                            continue;
                        }

                        try
                        {
                            await executor.ExecuteAsync(commandLine, CancellationToken.None);
                        }
                        catch (Exception exception)
                        {
                            logger.ConsoleException(exception);
                        }
                    } while (true);
                }
            // ReSharper disable once FunctionNeverReturns - it does renturn when you execute the 'exit' command
        }
Ejemplo n.º 4
0
        private static IContainer InitializeContainer(RoboNuGetFile configuration, ILoggerFactory loggerFactory)
        {
            var registrations =
                CommandRegistrationContainer
                .Empty
                .Register <Commands.UpdateNuspec>()
                .Register <Commands.Version>()
                .Register <Commands.Clear>()
                .Register <Commands.Build>()
                //.Register<Commands.NuGet>()
                .Register <Commands.Pack>()
                .Register <Commands.List>()
                .Register <Commands.Push>()
                .Register <Commands.Exit>();

            var builder = new ContainerBuilder();

            builder
            .RegisterInstance(configuration);

            builder
            .RegisterType <ProcessExecutor>()
            .As <IProcessExecutor>();

            builder
            .RegisterType <FileSystem>()
            .As <IFileSystem>();

            builder
            .RegisterType <FileSearch>()
            .As <IFileSearch>();

            builder
            .RegisterInstance(loggerFactory)
            .As <ILoggerFactory>();

            builder
            .RegisterModule(new CommanderModule(registrations));

            return(builder.Build());
        }
Ejemplo n.º 5
0
        private void RenderSplashScreen(RoboNuGetFile roboNuGetFile)
        {
            Logger.ConsoleMessageLine(m => m.Prompt().span(s => s.text("RoboNuGet v4.0.0").color(ConsoleColor.DarkGray)));

            var solutionFileName = _fileSearch.FindSolutionFile();
            var nuspecFiles      = _fileSearch.FindNuspecFiles().ToList();

            //ConsoleColorizer.RenderLine($"<p>&gt;Solution '<span color='yellow'>{solutionName}</span>' <span color='magenta'>v{_program.RoboNuGetFile.FullVersion}</span> ({nuspecFileCount} nuspec{(nuspecFileCount != 1 ? "s" : string.Empty)})</p>");

            Logger.ConsoleMessageLine(p => p
                                      .Prompt()
                                      .text("Solution ")
                                      .span(s => s.text(Path.GetFileNameWithoutExtension(solutionFileName).QuoteWith("'")).color(ConsoleColor.Yellow))
                                      .text(" ")
                                      .span(s => s.text($" v{_roboNuGetFile.FullVersion}").color(ConsoleColor.Magenta))
                                      .text(" ")
                                      .text($"({nuspecFiles.Count} nuspec{(nuspecFiles.Count != 1 ? "s" : string.Empty)})")
                                      );
            //            ConsoleColorizer.RenderLine($"<p>&gt;<span color='darkgray'>Directory '{Path.GetDirectoryName(_program.RoboNuGetFile.SolutionFileNameActual)}'</span></p>");
            //            ConsoleColorizer.RenderLine($"<p>&gt;<span color='darkgray'>Packages '{_program.RoboNuGetFile.PackageDirectoryName}'</span></p>");
            //            ConsoleColorizer.RenderLine($"<p>&gt;<span color='darkgray'>Last command '{(string.IsNullOrEmpty(_lastCommandLine) ? "N/A" : _lastCommandLine)}'</span> <span color='darkyellow'>(Press Enter to reuse)</span></p>");
            //            Console.Write(">");
        }
Ejemplo n.º 6
0
 public FileSearch(IFileSystem fileSystem, RoboNuGetFile roboNuGetFile)
 {
     _fileSystem    = fileSystem;
     _roboNuGetFile = roboNuGetFile;
 }
Ejemplo n.º 7
0
 public Version(ILoggerFactory loggerFactory, RoboNuGetFile roboNuGetFile) : base(loggerFactory)
 {
     _roboNuGetFile = roboNuGetFile;
 }
Ejemplo n.º 8
0
 public List(ILoggerFactory loggerFactory, RoboNuGetFile roboNuGetFile, IFileSearch fileSearch) : base(loggerFactory)
 {
     _roboNuGetFile = roboNuGetFile;
     _fileSearch    = fileSearch;
 }