public Push( ILoggerFactory loggerFactory, RoboNuGetFile roboNuGetFile, IFileSearch fileSearch, IProcessExecutor processExecutor ) : base(loggerFactory) { _roboNuGetFile = roboNuGetFile; _fileSearch = fileSearch; _processExecutor = processExecutor; }
public Pack( ILoggerFactory loggerFactory, RoboNuGetFile roboNuGetFile, IFileSearch fileSearch, IIndex <SoftKeySet, IConsoleCommand> commands, IProcessExecutor processExecutor ) : base(loggerFactory) { _roboNuGetFile = roboNuGetFile; _fileSearch = fileSearch; _commands = commands; _processExecutor = processExecutor; }
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 }
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()); }
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>>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>><span color='darkgray'>Directory '{Path.GetDirectoryName(_program.RoboNuGetFile.SolutionFileNameActual)}'</span></p>"); // ConsoleColorizer.RenderLine($"<p>><span color='darkgray'>Packages '{_program.RoboNuGetFile.PackageDirectoryName}'</span></p>"); // ConsoleColorizer.RenderLine($"<p>><span color='darkgray'>Last command '{(string.IsNullOrEmpty(_lastCommandLine) ? "N/A" : _lastCommandLine)}'</span> <span color='darkyellow'>(Press Enter to reuse)</span></p>"); // Console.Write(">"); }
public FileSearch(IFileSystem fileSystem, RoboNuGetFile roboNuGetFile) { _fileSystem = fileSystem; _roboNuGetFile = roboNuGetFile; }
public Version(ILoggerFactory loggerFactory, RoboNuGetFile roboNuGetFile) : base(loggerFactory) { _roboNuGetFile = roboNuGetFile; }
public List(ILoggerFactory loggerFactory, RoboNuGetFile roboNuGetFile, IFileSearch fileSearch) : base(loggerFactory) { _roboNuGetFile = roboNuGetFile; _fileSearch = fileSearch; }