using System.Collections.Generic; using System.Text.RegularExpressions; namespace SourceGit.Commands { /// /// 获取远程列表 /// public class Remotes : Command { private static readonly Regex REG_REMOTE = new Regex(@"^([\w\.\-]+)\s*(\S+).*$"); private List loaded = new List(); public Remotes(string repo) { Cwd = repo; Args = "remote -v"; } public List Result() { Exec(); return loaded; } public override void OnReadline(string line) { var match = REG_REMOTE.Match(line); if (!match.Success) return; var remote = new Models.Remote() { Name = match.Groups[1].Value, URL = match.Groups[2].Value, }; if (loaded.Find(x => x.Name == remote.Name) != null) return; loaded.Add(remote); } } }