public void DoShow() { AddonLocal = new AptLocal(AddonEnv); if (InitializeRepository()) { if (AddonRepo.IsAddonInRepository(ArgAddons[0])) { RepositoryAddonInfo info = AddonRepo.GetAddonInfo(ArgAddons[0]); PrintAddonInfo("Name", info.Name); if (AddonLocal.IsInstalled(info.Name)) { PrintAddonInfo("State", "Installed"); Output.Append(String.Format(" (Version {0})", AddonLocal.GetAddonInfo(info.Name).Version.Major.ToString())); } else { PrintAddonInfo("State", "Not installed"); } if (info.Category != null) { PrintAddonInfo("Category", info.Category); } if (info.Author != null) { PrintAddonInfo("Author", info.Author); } PrintAddonInfo("Version", info.Version.Major.ToString()); PrintAddonInfo("Interface", info.InterfaceVersion.ToString()); if (info.IsStable) { PrintAddonInfo("Stable", "Yes"); } else { PrintAddonInfo("Stable", "No"); } if (info.PubDate != null) { PrintAddonInfo("Published", info.PubDate); } if (info.RequiredDeps != null) { PrintAddonInfo("Dependencies", String.Join(", ", info.RequiredDeps.ToArray())); } if (info.Description != null) { Output.NewLine(); PrintAddonInfo(info.Description); Output.NewLine(); } } else { Output.Info("Addon not found in repository."); } } }
public void DoUpgrade() { AddonLocal = new AptLocal(AddonEnv); AddonRemote = new AptRemote(AddonEnv); if (Cfg.AutoUpdateIndex) { DoUpdate(); } if (InitializeRepository()) { if (!Cfg.AutoUpdateIndex) { Output.Info(String.Format("There are currently {0} addons in the database.", AddonRepo.GetAddonNum())); PrintEnvInfo(); } int updatedAddons; AptActionUpgrade upgrade = new AptActionUpgrade(AddonEnv, AddonLocal, AddonRemote, AddonRepo); upgrade.AddStatusListener(new AptAction.StatusMessageEventHandler(UpgradeStatusMessage)); foreach (string excludeAddon in ArgExclude) { upgrade.Exclude(excludeAddon); } if (ArgAddons.Count == 0) { Output.Info("Action: upgrade all addons."); updatedAddons = upgrade.Prepare(); } else { Output.Info("Action: upgrade some addons."); for (int i = 0; i < ArgAddons.Count; ++i) { upgrade.AddPattern(ArgAddons[i]); } updatedAddons = upgrade.Prepare(); } if (updatedAddons > 0) { Output.Info("An update is available for the following addons"); List <string> updated = upgrade.GetQueue(); // calculate download size int downloadSize = 0; foreach (string addon in updated) { downloadSize += AddonRepo.GetAddonInfo(addon).ZipFileSize; } Output.Append(String.Format(" (approx. {0} KB to download):\n\n", (downloadSize / 1024))); Output.Append(" " + String.Join(", ", updated.ToArray())); if (!Cfg.SilentMode) { Output.Append("\n\nDo you want to proceed? [Y/N]: "); if (Convert.ToChar(Console.Read()).ToString().ToLower() == "y") { upgrade.Run(); } } else { upgrade.Run(); } } else { Output.Info("No updates available."); } } }