private static int RunInstallPackage(PackageOptions options)
{
console.Write("Downloading catalogs...");
var availablePackages = new List<PackageReference>();
foreach (var packageSource in PackageSources.Instance.Sources)
{
Repository repo = null;
repo = packageSource.DownloadCatalog();
console.WriteLine("Done");
console.WriteLine("Enumerating Packages...");
if (repo != null)
{
foreach (var packageReference in repo.Packages)
{
availablePackages.Add(packageReference);
console.WriteLine(packageReference.Name);
}
}
}
var package = availablePackages.FirstOrDefault(p => p.Name == options.Package);
if (package != null)
{
var task = package.DownloadInfoAsync();
task.Wait();
var repo = task.Result;
var dlTask = repo.Synchronize(options.Tag, console);
dlTask.Wait();
return 1;
}
console.WriteLine("Unable to find package " + options.Package);
return -1;
}