Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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();
        }