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);
        }
Example #2
0
 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);
 }