コード例 #1
0
ファイル: EntryPoint.cs プロジェクト: skbkontur/cement
        private static int Main(string[] args)
        {
            LogManager.SetDebugLoggingLevel();

            logger = LogManager.GetLogger(typeof(EntryPoint));

            ThreadPoolSetUp(Helper.MaxDegreeOfParallelism);
            args = FixArgs(args);
            var exitCode = TryRun(args);

            ConsoleWriter.Shared.ResetProgress();

            var command = args[0];

            if (command != "complete" && command != "check-pre-commit" &&
                (command != "help" || !args.Contains("--gen")))
            {
                SelfUpdateCommand.UpdateIfOld();
            }

            logger.LogInformation($"Exit code: {exitCode}");

            LogManager.DisposeLoggers();

            return(exitCode == 0 ? 0 : 13);
        }
コード例 #2
0
ファイル: SelfUpdateCommand.cs プロジェクト: skbkontur/cement
 public static void UpdateIfOld()
 {
     try
     {
         var isEnabledSelfUpdate = CementSettingsRepository.Get().IsEnabledSelfUpdate;
         if (isEnabledSelfUpdate.HasValue && !isEnabledSelfUpdate.Value)
         {
             return;
         }
         var lastUpdate = Helper.GetLastUpdateTime();
         var now        = DateTime.Now;
         var diff       = now - lastUpdate;
         if (diff <= TimeSpan.FromHours(5))
         {
             return;
         }
         isAutoUpdate = true;
         var exitCode = new SelfUpdateCommand().Run(new[] { "self-update" });
         if (exitCode != 0)
         {
             Log.LogError("Auto update cement failed. 'self-update' exited with code '{Code}'", exitCode);
             ConsoleWriter.Shared.WriteWarning("Auto update failed. Check previous warnings for details");
         }
     }
     catch (Exception exception)
     {
         Log.LogError(exception, "Auto update failed, error: '{ErrorMessage}'", exception.Message);
         ConsoleWriter.Shared.WriteWarning("Auto update failed. Check logs for details");
     }
 }