Пример #1
0
        private void CurrentBranch(string path, bool fetch)
        {
            const string gitArgs = @"status -b -s";

            Console.WriteLine("REPOSITORIES");
            Console.WriteLine("{0,-40}{1,-30}{2,-25}{3}", "Repository", "Current branch", "Status", "Modified/Last Fetch");
            Console.WriteLine("======================================= ============================= ======================== ===================");

            var enumerable = Directory.GetDirectories(path)
                             .Select(r =>
            {
                var name = Path.GetFileName(r);
                if (fetch)
                {
                    Console.Write("{0,-40}{1}", name, "fetching...\r");
                    Context.Git(r, "fetch", out _, out _);
                }
                var gitOut = Context.Git(r, gitArgs, out _, out _);
                var repo   = new RepositoryInfo {
                    Path = r, Name = name, IsGithub = true
                };
                ParseStatus(repo, gitOut);
                repo.Modified = new DateTime(Math.Max(repo.Modified.Ticks, GetLastFetchDate(r).Ticks));
                return(repo);
            });

            foreach (var repo in enumerable)
            {
                if (repo.IsGithub)
                {
                    Console.Write("{0,-40}", repo.Name);
                    using (BranchColor(repo.Branch))
                        Console.Write("{0,-30}", repo.Branch);
                    using (StatusColor(repo.CommitStatus))
                        Console.Write("{0,-25}", repo.Status);
                    SetDefaultColor();
                    Console.WriteLine(DateTools.FormatDate(repo.Modified));
                }
                else
                {
                    using (new ColoredBlock(ConsoleColor.White, ConsoleColor.DarkRed))
                    {
                        Console.Write("{0,-40}", repo.Name);
                        Console.Write("{0,-30}", "Not a github repository");
                        Console.Write("{0,-25}", "");
                        Console.Write("{0,-19}", "");
                        Console.WriteLine();
                    }
                }
            }
        }
Пример #2
0
 /// <summary>
 /// 写入日志
 /// </summary>
 /// <param name="msg"></param>
 public static void Write(LogMessage msg)
 {
     try
     {
         var fi = new System.IO.FileInfo(IO.PathTool.Map(XCore.LogPath, DateTools.FormatDate(), msg.LogLevel + ".log"));
         if (!fi.Directory.Exists)
         {
             fi.Directory.Create();
         }
         var fs = fi.Exists ? fi.AppendText() : fi.CreateText();
         fs.WriteLine(string.Format("{0} {1} - {2}", DateTools.Format(msg.LogTime), msg.LogLevel, msg.Message));
         fs.Flush();
         fs.Dispose();
     }
     catch { }
 }
Пример #3
0
        private static string FormatDate(TimeSpan diff)
        {
            var now = new DateTime(2018, 07, 17, 10, 00, 00);

            return(DateTools.FormatDate(now - diff, now));
        }