public async Task Up(DockerComposeUpRequest request, CancellationToken cancellationToken = default) { var repositories = _repositoryProvider.GetAvailableRepositories(request.Name); foreach (var repository in repositories) { var args = request.ToDockerCompose(repository.Local.Location); var process = DockerComposeProcessBuilder.Up(args); Console.WriteLine($"Starting Docker Container: {args}"); process.Start(); Console.WriteLine($"Stated Docker Container: {args}"); } }
public List <RepositoryPrintRow> GetRepositoryData() { var repos = _repositoryProvider.GetAvailableRepositories() .Select(s => new RepositoryPrintRow { Slug = s.Slug, Branch = s.Local.CurrentBranch(), LastCommitMessage = s.Local.GetLogMessages().LastOrDefault() }).ToList(); return(repos); }
private void CheckoutRepositories(IEnumerable <string> repositorySlugs, string branchName) { var repos = _repositoryProvider .GetAvailableRepositories(repositorySlugs) .Select(s => s.Local) .ToList(); Console.WriteLine("Checking out available repositories"); repos.First().GetBranches(); foreach (var runnable in repos.Select(repo => { var createBranch = !repo.BranchExists(branchName); var processes = new List <IProcess>(); if (createBranch) { processes.AddRange(new List <IProcess> { repo.Fetch(), repo.Pull() }); } processes.Add(repo.Checkout(new Checkout { Branch = new Branch { Name = branchName }, Create = createBranch })); return(new { Repo = repo, Processes = processes }); }).Select(repo => new { repo.Repo, RunnableProcess = repo.Processes.ToRunnableProcess() })) { Console.WriteLine($"Checking out: {runnable.Repo.Name}"); runnable.RunnableProcess.Start(); Console.WriteLine($"Checked out: {runnable.Repo.Name}"); } Console.WriteLine($"Checked out available repositories"); }
public async Task Pull() { var repos = _repositoryProvider.GetAvailableRepositories(); Pull(repos); }