private bool InstallFromCache(PackageWorkingInstallFromCache installFromCache) { var mode = installFromCache.Mode; var install = installFromCache.Install; var packageDirectory = new DirectoryInfo(installFromCache.PackagePath); var path = packageDirectory.FullName.RemoveStart(nodeModulesPath + @"\"); try { var elapsed = TimeSpan.MinValue; SkipPath(packageDirectory.Name); AddInstallStatus(installFromCache, StatusMode.Normal, $"Installing '{ install }' from cache"); using (this.StartStopwatch((s) => elapsed = s)) { installFromCache.InstallPackage(); AddPathStatus(path, CacheStatusType.PathProcessed); } AddInstallStatus(installFromCache, StatusMode.Success, "Install of '{0}' from cache took {1} seconds", path, elapsed.ToDecimalSeconds()); AddPackageCacheStatus(path, install, CacheStatusType.PathCopiedFromCache); } catch (Exception ex) { AddInstallStatus(installFromCache, StatusMode.Error, "Error installing '{0}', ", ex.Message); AddPackageCacheStatus(path, install, ex); DebugUtils.Break(); return(false); } return(true); }
private void InstallFromCache(string name, NpmVersion installVersion, DirectoryInfo cacheDirectory, DirectoryInfo packageDirectory, bool executeActions = true, bool executeDirectly = false) { var install = name + "@" + installVersion.Version; if (!this.ContainsKey(install)) { var workingInstallFromCache = new PackageWorkingInstallFromCache(this.Mode, install, cacheDirectory.FullName, packageDirectory.FullName, this.PackageModules, this); HandleEvents(workingInstallFromCache); this.Add(install, workingInstallFromCache); workingInstallFromCache.InstallPackage(executeActions, executeDirectly); } }