bool CheckAddins(bool updating) { entries.Clear(); bool addinsNotFound = false; foreach (string id in addin_ids) { string name = Addin.GetIdName(id); string version = Addin.GetIdVersion(id); AddinRepositoryEntry[] ares = setup.Repositories.GetAvailableAddin(name, version); if (ares.Length == 0) { addinsNotFound = true; } else { entries.Add(Package.FromRepository(ares[0])); } } DependencyCollection unresolved; PackageCollection toUninstall; if (!setup.ResolveDependencies(this, entries, out toUninstall, out unresolved)) { /* Change this to some way of notifying that there are missing deps * foreach (Dependency dep in unresolved) { * txt += "<span foreground='red'><b>" + dep.Name + "</b> (not found)</span>\n"; * } */ addinsNotFound = true; } return(!addinsNotFound); }
bool CheckAddins(bool updating) { string txt = ""; entries.Clear(); bool addinsNotFound = false; foreach (string id in addinIds) { string name = Addin.GetIdName(id); string version = Addin.GetIdVersion(id); AddinRepositoryEntry[] ares = setup.Repositories.GetAvailableAddin(name, version); if (ares.Length == 0) { addinsNotFound = true; if (updating) { txt += "<span foreground='grey'><b>" + name + " " + version + "</b> (searching add-in)</span>\n"; } else { txt += "<span foreground='red'><b>" + name + " " + version + "</b> (not found)</span>\n"; } } else { entries.Add(Package.FromRepository(ares[0])); txt += "<b>" + ares[0].Addin.Name + " " + ares[0].Addin.Version + "</b>\n"; } } PackageCollection toUninstall; DependencyCollection unresolved; if (!setup.ResolveDependencies(this, entries, out toUninstall, out unresolved)) { foreach (Dependency dep in unresolved) { txt += "<span foreground='red'><b>" + dep.Name + "</b> (not found)</span>\n"; } addinsNotFound = true; } addinList.Markup = txt; return(!addinsNotFound); }
void FillSummaryPage() { PackageCollection packs = new PackageCollection(); if (filesToInstall != null) { foreach (string file in filesToInstall) { packs.Add(Package.FromFile(file)); } } else { foreach (AddinRepositoryEntry arep in addinsToInstall) { packs.Add(Package.FromRepository(arep)); } } packagesToInstall = new PackageCollection(packs); PackageCollection toUninstall; DependencyCollection unresolved; bool res; InstallMonitor m = new InstallMonitor(); res = service.ResolveDependencies(m, packs, out toUninstall, out unresolved); StringBuilder sb = new StringBuilder(); if (!res) { sb.Append("<b><span foreground=\"red\">").Append(Catalog.GetString("The selected add-ins can't be installed because there are dependency conflicts.")).Append("</span></b>\n"); foreach (string s in m.Errors) { sb.Append("<b><span foreground=\"red\">" + s + "</span></b>\n"); } sb.Append("\n"); } if (m.Warnings.Count != 0) { foreach (string w in m.Warnings) { sb.Append("<b><span foreground=\"red\">" + w + "</span></b>\n"); } sb.Append("\n"); } sb.Append("<b>").Append(Catalog.GetString("The following packages will be installed:")).Append("</b>\n\n"); foreach (Package p in packs) { sb.Append(p.Name); if (!p.SharedInstall) { sb.Append(Catalog.GetString(" (in user directory)")); } sb.Append("\n"); } sb.Append("\n"); if (toUninstall.Count > 0) { sb.Append("<b>").Append(Catalog.GetString("The following packages need to be uninstalled:")).Append("</b>\n\n"); foreach (Package p in toUninstall) { sb.Append(p.Name + "\n"); } sb.Append("\n"); } if (unresolved.Count > 0) { sb.Append("<b>").Append(Catalog.GetString("The following dependencies could not be resolved:")).Append("</b>\n\n"); foreach (Dependency p in unresolved) { sb.Append(p.Name + "\n"); } sb.Append("\n"); } buttonOk.Sensitive = res; ShowMessage(sb.ToString()); }
void FillSummaryPage() { btnPrev.Sensitive = true; AddinHeader[] infos = tree.GetSelectedAddins(); PackageCollection packs = new PackageCollection(); foreach (AddinHeader info in infos) { AddinRepositoryEntry arep = (AddinRepositoryEntry)tree.GetAddinData(info); packs.Add(Package.FromRepository(arep)); } packagesToInstall = new PackageCollection(packs); PackageCollection toUninstall; DependencyCollection unresolved; bool res; InstallMonitor m = new InstallMonitor(); res = service.ResolveDependencies(m, packs, out toUninstall, out unresolved); StringBuilder sb = new StringBuilder(); if (!res) { sb.Append("<b><span foreground=\"red\">").Append(Catalog.GetString("The selected extensions can't be installed because there are dependency conflicts.")).Append("</span></b>\n"); foreach (string s in m.Errors) { sb.Append("<b><span foreground=\"red\">" + s + "</span></b>\n"); } sb.Append("\n"); } if (m.Warnings.Count != 0) { foreach (string w in m.Warnings) { sb.Append("<b><span foreground=\"red\">" + w + "</span></b>\n"); } sb.Append("\n"); } sb.Append("<b>").Append(Catalog.GetString("The following packages will be installed:")).Append("</b>\n\n"); foreach (Package p in packs) { sb.Append(p.Name); if (!p.SharedInstall) { sb.Append(Catalog.GetString(" (in user directory)")); } sb.Append("\n"); } sb.Append("\n"); if (toUninstall.Count > 0) { sb.Append("<b>").Append(Catalog.GetString("The following packages need to be uninstalled:")).Append("</b>\n\n"); foreach (Package p in toUninstall) { sb.Append(p.Name + "\n"); } sb.Append("\n"); } if (unresolved.Count > 0) { sb.Append("<b>").Append(Catalog.GetString("The following dependencies could not be resolved:")).Append("</b>\n\n"); foreach (Dependency p in unresolved) { sb.Append(p.Name + "\n"); } sb.Append("\n"); } btnNext.Sensitive = res; labelSummary.Markup = sb.ToString(); }