public VersionVariables LoadVersionVariablesFromDiskCache(IRepository repo, string gitDir) { using (Logger.IndentLog("Loading version variables from disk cache")) { // If the cacheDir already exists, CreateDirectory just won't do anything (it won't fail). @asbjornu var cacheDir = GetCacheDir(gitDir); fileSystem.CreateDirectory(cacheDir); var cacheFileName = GetCacheFileName(GetKey(repo, gitDir), cacheDir); VersionVariables vv = null; if (fileSystem.Exists(cacheFileName)) { using (Logger.IndentLog("Deserializing version variables from cache file " + cacheFileName)) { try { vv = VersionVariables.FromFile(cacheFileName, fileSystem); } catch (Exception ex) { Logger.WriteWarning("Unable to read cache file " + cacheFileName + ", deleting it."); Logger.WriteInfo(ex.ToString()); try { fileSystem.Delete(cacheFileName); } catch (Exception deleteEx) { Logger.WriteWarning(string.Format("Unable to delete corrupted version cache file {0}. Got {1} exception.", cacheFileName, deleteEx.GetType().FullName)); } } } } else { Logger.WriteInfo("Cache file " + cacheFileName + " not found."); } return(vv); } }
public VersionVariables LoadVersionVariablesFromDiskCache(GitPreparer gitPreparer, GitVersionCacheKey key) { using (Logger.IndentLog("Loading version variables from disk cache")) { var cacheDir = PrepareCacheDirectory(gitPreparer); var cacheFileName = GetCacheFileName(key, cacheDir); if (!fileSystem.Exists(cacheFileName)) { Logger.WriteInfo("Cache file " + cacheFileName + " not found."); return(null); } using (Logger.IndentLog("Deserializing version variables from cache file " + cacheFileName)) { try { var loadedVariables = VersionVariables.FromFile(cacheFileName, fileSystem); return(loadedVariables); } catch (Exception ex) { Logger.WriteWarning("Unable to read cache file " + cacheFileName + ", deleting it."); Logger.WriteInfo(ex.ToString()); try { fileSystem.Delete(cacheFileName); } catch (Exception deleteEx) { Logger.WriteWarning($"Unable to delete corrupted version cache file {cacheFileName}. Got {deleteEx.GetType().FullName} exception."); } return(null); } } } }