public GitFlowCommandResult Init(GitFlowRepoSettings settings) { Error = new StringBuilder(""); Output = new StringBuilder(""); using (var p = CreateGitFlowProcess("init -f", repoDirectory)) { OnCommandOutputDataReceived(new CommandOutputEventArgs("Running git " + p.StartInfo.Arguments + Environment.NewLine)); p.Start(); p.ErrorDataReceived += OnErrorReceived; p.BeginErrorReadLine(); var input = new StringBuilder(); var sr = p.StandardOutput; while (!sr.EndOfStream) { var inputChar = (char) sr.Read(); input.Append(inputChar); if (StringBuilderEndsWith(input, Environment.NewLine)) { Output.AppendLine(input.ToString()); OnCommandOutputDataReceived(new CommandOutputEventArgs(input.ToString())); input = new StringBuilder(); } if (IsMasterBranchQuery(input.ToString())) { p.StandardInput.WriteLine(settings.MasterBranch); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsDevelopBranchQuery(input.ToString())) { p.StandardInput.WriteLine(settings.DevelopBranch); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsFeatureBranchQuery(input.ToString())) { p.StandardInput.WriteLine(settings.FeatureBranch); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsReleaseBranchQuery(input.ToString())) { p.StandardInput.WriteLine(settings.ReleaseBranch); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsHotfixBranchQuery(input.ToString())) { p.StandardInput.WriteLine(settings.HotfixBranch); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsSupportBranchQuery(input.ToString())) { p.StandardInput.WriteLine(settings.SupportBranch); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsVersionTagPrefixQuery(input.ToString())) { p.StandardInput.WriteLine(settings.VersionTag); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsHooksAndFiltersQuery(input.ToString())) { p.StandardInput.WriteLine(""); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } } } if (Error != null && Error.Length > 0) { return new GitFlowCommandResult(false, Error.ToString()); } return new GitFlowCommandResult(true, Output.ToString()); }
public GitFlowCommandResult Init(GitFlowRepoSettings settings) { Error = new StringBuilder(""); Output = new StringBuilder(""); using (var p = CreateGitFlowProcess("init -f", repoDirectory)) { OnCommandOutputDataReceived(new CommandOutputEventArgs("Running git " + p.StartInfo.Arguments + Environment.NewLine)); p.Start(); p.ErrorDataReceived += OnErrorReceived; p.BeginErrorReadLine(); var input = new StringBuilder(); var sr = p.StandardOutput; while (!sr.EndOfStream) { var inputChar = (char)sr.Read(); input.Append(inputChar); if (StringBuilderEndsWith(input, Environment.NewLine)) { Output.AppendLine(input.ToString()); OnCommandOutputDataReceived(new CommandOutputEventArgs(input.ToString())); input = new StringBuilder(); } if (IsMasterBranchQuery(input.ToString())) { p.StandardInput.Write(settings.MasterBranch + "\n"); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsDevelopBranchQuery(input.ToString())) { p.StandardInput.Write(settings.DevelopBranch + "\n"); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsFeatureBranchQuery(input.ToString())) { p.StandardInput.Write(settings.FeatureBranch + "\n"); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsBugfixBranchQuery(input.ToString())) { p.StandardInput.Write(settings.FeatureBranch + "\n"); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsReleaseBranchQuery(input.ToString())) { p.StandardInput.Write(settings.ReleaseBranch + "\n"); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsHotfixBranchQuery(input.ToString())) { p.StandardInput.Write(settings.HotfixBranch + "\n"); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsSupportBranchQuery(input.ToString())) { p.StandardInput.Write(settings.SupportBranch + "\n"); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsVersionTagPrefixQuery(input.ToString())) { p.StandardInput.WriteLine(settings.VersionTag); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } else if (IsHooksAndFiltersQuery(input.ToString())) { p.StandardInput.WriteLine(""); Output.Append(input); OnCommandOutputDataReceived(new CommandOutputEventArgs(input + Environment.NewLine)); input = new StringBuilder(); } } } if (Error != null && Error.Length > 0) { return(new GitFlowCommandResult(false, Error.ToString())); } return(new GitFlowCommandResult(true, Output.ToString())); }