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); }
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"); } }