Esempio n. 1
0
        public void Invoke(InitRepositoryParameters parameters)
        {
            Verify.Argument.IsNotNull(parameters, nameof(parameters));

            var command  = _commandFactory(parameters);
            var executor = new RepositoryCommandExecutor(_cliOptionsProvider, parameters.Path);
            var output   = executor.ExecuteCommand(command, CommandExecutionFlags.None);

            output.ThrowOnBadReturnCode();
        }
Esempio n. 2
0
        public bool IsValidRepository(string path)
        {
            var gitPath = Path.Combine(path, GitConstants.GitDir);

            if (Directory.Exists(gitPath) || File.Exists(gitPath))
            {
                var executor  = new RepositoryCommandExecutor(this, path);
                var gitOutput = executor.ExecuteCommand(
                    new RevParseCommand(RevParseCommand.GitDir()),
                    CommandExecutionFlags.None);
                return(gitOutput.ExitCode == 0);
            }
            return(false);
        }
Esempio n. 3
0
        public Task InvokeAsync(InitRepositoryParameters parameters, IProgress <OperationProgress> progress, CancellationToken cancellationToken)
        {
            Verify.Argument.IsNotNull(parameters, nameof(parameters));

            var command  = _commandFactory(parameters);
            var executor = new RepositoryCommandExecutor(_cliOptionsProvider, parameters.Path);

            return(executor
                   .ExecuteCommandAsync(command, CommandExecutionFlags.None, cancellationToken)
                   .ContinueWith(
                       t =>
            {
                TaskUtility.UnwrapResult(t).ThrowOnBadReturnCode();
            },
                       cancellationToken,
                       TaskContinuationOptions.ExecuteSynchronously,
                       TaskScheduler.Default));
        }