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 DoRemove() { AddonLocal = new AptLocal(AddonEnv); Output.Info("Action: remove addon(s)."); Output.Info(String.Format("Addons currently installed: {0}", AddonLocal.GetAddonNum())); if (InitializeRepository()) { AptActionRemove remove = new AptActionRemove(AddonEnv, AddonLocal, AddonRemote, AddonRepo); remove.AddStatusListener(new AptAction.StatusMessageEventHandler(RemoveStatusMessage)); foreach (string addon in ArgAddons) { remove.Add(addon); } // check if exists List <string> queue = remove.GetQueue(); List <string> removeList = new List <string>(); foreach (string addon in queue) { removeList.Add(AddonLocal.GetAddonInfo(addon).Name); } // no addons to be removed if (removeList.Count == 0) { Output.Error("No addons found matching given names."); return; } Output.Info("The following addons will be removed:\n\n"); Output.Append(" " + String.Join(", ", removeList.ToArray())); if (!Cfg.SilentMode) { Output.Append("\n\nDo you want to proceed? [Y/N]: "); if (Convert.ToChar(Console.Read()).ToString().ToLower() == "y") { remove.Run(); } } else { remove.Run(); } } }
public void DoUnpack() { AddonLocal = new AptLocal(AddonEnv); if (ArgAddons.Count > 0) { foreach (string addon in ArgAddons) { _DoUnpack(addon); } } else { foreach (LocalAddonInfo info in AddonLocal) { _DoUnpack(info.Name); } } }
public void DoInstall() { AddonLocal = new AptLocal(AddonEnv); AddonRemote = new AptRemote(AddonEnv); if (Cfg.AutoUpdateIndex) { DoUpdate(); } Output.Info("Action: install addon(s)."); int installedAddons = 0; if (InitializeRepository()) { if (!Cfg.AutoUpdateIndex) { Output.Info(String.Format("There are currently {0} addons in the database.", AddonRepo.GetAddonNum())); PrintEnvInfo(); } AptActionInstall install = new AptActionInstall(AddonEnv, AddonLocal, AddonRemote, AddonRepo); install.AddStatusListener(new AptAction.StatusMessageEventHandler(InstallStatusMessage)); foreach (string addon in ArgAddons) { if (AddonRepo.IsAddonInRepository(addon)) { if (install.Install(addon, false)) { installedAddons++; } } else { Output.Error(String.Format("Addon not found: {0}", addon)); } } Output.Info(String.Format("Addons installed: {0}", installedAddons)); } }
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."); } } }