private static IPackageRepository CreatePackageRepository() { var currentFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var localSettings = Settings.LoadDefaultSettings(new PhysicalFileSystem(currentFolder), null, null); // Get a package source provider that can use the settings var packageSourceProvider = new PackageSourceProvider(localSettings); // Create an aggregate repository that uses all of the configured sources var aggregateRepository = packageSourceProvider.CreateAggregateRepository(PackageRepositoryFactory.Default, true /* ignore failing repos. Errors will be logged as warnings. */); return(aggregateRepository); }
public NugetStore(string rootDirectory, string configFile = DefaultConfig) { if (rootDirectory == null) { throw new ArgumentNullException("rootDirectory"); } if (configFile == null) { throw new ArgumentNullException("configFile"); } var configFilePath = Path.Combine(rootDirectory, configFile); if (!File.Exists(configFilePath)) { throw new ArgumentException(String.Format("Invalid installation. Configuration file [{0}] not found", configFile), "configFile"); } rootFileSystem = new PhysicalFileSystem(rootDirectory); settings = NuGet.Settings.LoadDefaultSettings(rootFileSystem, configFile, null); string installPath = settings.GetRepositoryPath(); packagesFileSystem = new PhysicalFileSystem(installPath); packageSourceProvider = new PackageSourceProvider(settings); repositoryFactory = new PackageRepositoryFactory(); aggregateRepository = packageSourceProvider.CreateAggregateRepository(repositoryFactory, true); pathResolver = new DefaultPackagePathResolver(packagesFileSystem); manager = new PackageManager(aggregateRepository, pathResolver, packagesFileSystem); MainPackageId = Settings.GetConfigValue(MainPackageKey); if (string.IsNullOrWhiteSpace(MainPackageId)) { throw new InvalidOperationException(string.Format("Invalid configuration. Expecting [{0}] in config", MainPackageKey)); } RepositoryPath = Settings.GetConfigValue(RepositoryPathKey); if (string.IsNullOrWhiteSpace(RepositoryPath)) { RepositoryPath = DefaultGamePackagesDirectory; } // Setup NugetCachePath in the cache folder Environment.SetEnvironmentVariable("NuGetCachePath", Path.Combine(rootDirectory, "Cache", RepositoryPath)); }
/// <summary> /// Creates and returns an aggregate repository using the specified settings /// </summary> public static IPackageRepository CreateRepository(ISettings settings, Common.ILogger logger) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } if (logger == null) { throw new ArgumentNullException(nameof(logger)); } // Load the user and machine-wide settings logger.LogDebug(UIResources.NG_FetchingConfigFiles); // Get a package source provider that can use the settings PackageSourceProvider packageSourceProvider = new PackageSourceProvider(settings); logger.LogDebug(UIResources.NG_ListingEnablePackageSources); IEnumerable <PackageSource> enabledSources = packageSourceProvider.GetEnabledPackageSources(); if (!enabledSources.Any()) { logger.LogWarning(UIResources.NG_NoEnabledPackageSources); } else { foreach (PackageSource enabledSource in enabledSources) { logger.LogDebug(UIResources.NG_ListEnabledPackageSource, enabledSource.Source, enabledSource.IsMachineWide); } } // Create an aggregate repository that uses all of the configured sources AggregateRepository aggRepo = packageSourceProvider.CreateAggregateRepository(PackageRepositoryFactory.Default, true /* ignore failing repos. Errors will be logged as warnings. */); aggRepo.Logger = new NuGetLoggerAdapter(logger); return(aggRepo); }
public NugetStore(string rootDirectory, string configFile = DefaultConfig, string overrideFile = OverrideConfig) { if (rootDirectory == null) { throw new ArgumentNullException(nameof(rootDirectory)); } if (configFile == null) { throw new ArgumentNullException(nameof(configFile)); } if (overrideFile == null) { throw new ArgumentNullException(nameof(overrideFile)); } // First try the override file with custom settings var configFileName = overrideFile; var configFilePath = Path.Combine(rootDirectory, configFileName); if (!File.Exists(configFilePath)) { // Override file does not exist, fallback to default config file configFileName = configFile; configFilePath = Path.Combine(rootDirectory, configFileName); if (!File.Exists(configFilePath)) { throw new ArgumentException($"Invalid installation. Configuration file [{configFile}] not found", nameof(configFile)); } } rootFileSystem = new PhysicalFileSystem(rootDirectory); Settings = NuGet.Settings.LoadDefaultSettings(rootFileSystem, configFileName, null); string installPath = Settings.GetRepositoryPath(); packagesFileSystem = new PhysicalFileSystem(installPath); packageSourceProvider = new PackageSourceProvider(Settings); repositoryFactory = new PackageRepositoryFactory(); SourceRepository = packageSourceProvider.CreateAggregateRepository(repositoryFactory, true); pathResolver = new DefaultPackagePathResolver(packagesFileSystem); Manager = new PackageManager(SourceRepository, pathResolver, packagesFileSystem); var mainPackageList = Settings.GetConfigValue(MainPackagesKey); if (string.IsNullOrWhiteSpace(mainPackageList)) { throw new InvalidOperationException($"Invalid configuration. Expecting [{MainPackagesKey}] in config"); } MainPackageIds = mainPackageList.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); VSIXPluginId = Settings.GetConfigValue(VsixPluginKey); if (string.IsNullOrWhiteSpace(VSIXPluginId)) { throw new InvalidOperationException($"Invalid configuration. Expecting [{VsixPluginKey}] in config"); } RepositoryPath = Settings.GetConfigValue(RepositoryPathKey); if (string.IsNullOrWhiteSpace(RepositoryPath)) { RepositoryPath = DefaultGamePackagesDirectory; } // Setup NugetCachePath in the cache folder Environment.SetEnvironmentVariable("NuGetCachePath", Path.Combine(rootDirectory, "Cache", RepositoryPath)); }