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");
        }
示例#4
0
        public async Task Pull()
        {
            var repos = _repositoryProvider.GetAvailableRepositories();

            Pull(repos);
        }