From 7733bdf11e7d199c5c9db062cb4c6a2255a71c95 Mon Sep 17 00:00:00 2001 From: Rob Reynolds Date: Sun, 25 Jan 2015 17:17:27 -0600 Subject: [PATCH] (GH-10) packages.config search --- .../services/ChocolateyPackageService.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/chocolatey/infrastructure.app/services/ChocolateyPackageService.cs b/src/chocolatey/infrastructure.app/services/ChocolateyPackageService.cs index 07c96fa151..20cb3e0f1a 100644 --- a/src/chocolatey/infrastructure.app/services/ChocolateyPackageService.cs +++ b/src/chocolatey/infrastructure.app/services/ChocolateyPackageService.cs @@ -263,11 +263,35 @@ private IEnumerable set_config_from_package_names_and_p { config.PackageNames = config.PackageNames.Replace(packageConfigFile, string.Empty); + foreach (var package in get_packages_from_config(packageConfigFile, packageInstalls).or_empty_list_if_null()) + { + var packageConfig = config.deep_copy(); + packageConfig.PackageNames = package; + + yield return packageConfig; + } } yield return config; } + private IEnumerable get_packages_from_config(string packageConfigFile, ConcurrentDictionary packageInstalls) + { + IList packages = new List(); + + if (!_fileSystem.file_exists(_fileSystem.get_full_path(packageConfigFile))) + { + var logMessage = "Could not find '{0}' in the location specified.".format_with(packageConfigFile); + this.Log().Error(ChocolateyLoggers.Important, logMessage); + var results = packageInstalls.GetOrAdd(packageConfigFile, new PackageResult(packageConfigFile, null, null)); + results.Messages.Add(new ResultMessage(ResultType.Error, logMessage)); + + return packages; + } + + return packages; + } + public void upgrade_noop(ChocolateyConfiguration config) { _nugetService.upgrade_noop(config, (pkg) => _powershellService.install_noop(pkg));