public static DugiteReleaseManifest Load(SPath localCacheFile, UriString packageFeed, IEnvironment environment) { DugiteReleaseManifest package = null; //SPath localCacheFeed = environment.UserCachePath.Combine("embedded-git.json"); var filename = localCacheFile.FileName; var key = localCacheFile.FileNameWithoutExtension + "_updatelastCheckTime"; var now = DateTimeOffset.Now; if (!localCacheFile.FileExists() || now.Date > environment.UserSettings.Get <DateTimeOffset>(key).Date) { localCacheFile = new DownloadTask(TaskManager.Instance.Token, environment.FileSystem, packageFeed, environment.UserCachePath, filename) .Catch(ex => { LogHelper.Warning(@"Error downloading package feed:{0} ""{1}"" Message:""{2}""", packageFeed, ex.GetType().ToString(), ex.GetExceptionMessageShort()); return(true); }) .RunSynchronously(); if (localCacheFile.IsInitialized) { environment.UserSettings.Set <DateTimeOffset>(key, now); } } if (!localCacheFile.IsInitialized) { // try from assembly resources localCacheFile = AssemblyResources.ToFile(ResourceType.Platform, packageFeed.Filename, environment.UserCachePath, environment); } if (localCacheFile.IsInitialized) { try { package = Load(localCacheFile, environment); } catch (Exception ex) { LogHelper.Error(ex); } } return(package); }
public GitInstallationState CheckForGitUpdates(GitInstallationState state) { if (state.GitInstallationPath == installDetails.GitInstallationPath) { state.GitReleaseManifest = DugiteReleaseManifest.Load(environment.UserCachePath.Combine("embedded-git.json"), installDetails.GitPackageFeed, environment); if (state.GitReleaseManifest != null) { state.GitIsValid = state.GitVersion >= state.GitReleaseManifest.Version; if (state.GitIsValid) { state.IsCustomGitPath = state.GitExecutablePath != installDetails.GitExecutablePath; } else { Logger.Trace($"{installDetails.GitExecutablePath} is out of date"); } } } return(state); }