Author: jkupec
Date: Mon Apr 14 18:06:36 2008
New Revision: 9617
URL: http://svn.opensuse.org/viewcvs/zypp?rev=9617&view=rev
Log:
- 'patterns' command added (fate #302148)
- 'patches' now take repos as arguments (fate #302148)
Modified:
trunk/zypper/src/zypper-command.cc
trunk/zypper/src/zypper-command.h
trunk/zypper/src/zypper-misc.cc
trunk/zypper/src/zypper-misc.h
trunk/zypper/src/zypper-search.cc
trunk/zypper/src/zypper-search.h
trunk/zypper/src/zypper.cc
Modified: trunk/zypper/src/zypper-command.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-command.cc?rev=9617&r1=9616&r2=9617&view=diff
==============================================================================
--- trunk/zypper/src/zypper-command.cc (original)
+++ trunk/zypper/src/zypper-command.cc Mon Apr 14 18:06:36 2008
@@ -34,7 +34,10 @@
const ZypperCommand ZypperCommand::INFO(ZypperCommand::INFO_e);
const ZypperCommand ZypperCommand::LIST_UPDATES(ZypperCommand::LIST_UPDATES_e);
const ZypperCommand ZypperCommand::PATCH_CHECK(ZypperCommand::PATCH_CHECK_e);
-const ZypperCommand ZypperCommand::SHOW_PATCHES(ZypperCommand::SHOW_PATCHES_e);
+//const ZypperCommand ZypperCommand::PACKAGES(ZypperCommand::PACKAGES_e);
+const ZypperCommand ZypperCommand::PATCHES(ZypperCommand::PATCHES_e);
+const ZypperCommand ZypperCommand::PATTERNS(ZypperCommand::PATTERNS_e);
+//const ZypperCommand ZypperCommand::PRODUCTS(ZypperCommand::PRODUCTS_e);
const ZypperCommand ZypperCommand::XML_LIST_UPDATES_PATCHES(ZypperCommand::XML_LIST_UPDATES_PATCHES_e);
const ZypperCommand ZypperCommand::ADD_LOCK(ZypperCommand::ADD_LOCK_e);
@@ -80,7 +83,10 @@
_table["info"] = _table["if"] = ZypperCommand::INFO_e;
_table["list-updates"] = _table["lu"] = ZypperCommand::LIST_UPDATES_e;
_table["patch-check"] = _table["pchk"] = ZypperCommand::PATCH_CHECK_e;
- _table["patches"] = _table["pch"] = ZypperCommand::SHOW_PATCHES_e;
+ //_table["packages"] = _table["pa"] = _table["pkg"] = ZypperCommand::PACKAGES_e;
+ _table["patches"] = _table["pch"] = ZypperCommand::PATCHES_e;
+ _table["patterns"] = _table["pt"] = ZypperCommand::PATTERNS_e;
+ //_table["products"] = _table["pd"] = ZypperCommand::PRODUCTS_e;
_table["xml-updates"] = _table["xu"] = ZypperCommand::XML_LIST_UPDATES_PATCHES_e;
_table["addlock"] = _table["al"] = _table["lock-add"] = _table["la"] = ZypperCommand::ADD_LOCK_e;
Modified: trunk/zypper/src/zypper-command.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-command.h?rev=9617&r1=9616&r2=9617&view=diff
==============================================================================
--- trunk/zypper/src/zypper-command.h (original)
+++ trunk/zypper/src/zypper-command.h Mon Apr 14 18:06:36 2008
@@ -29,7 +29,10 @@
static const ZypperCommand INFO;
static const ZypperCommand LIST_UPDATES;
static const ZypperCommand PATCH_CHECK;
- static const ZypperCommand SHOW_PATCHES;
+ //static const ZypperCommand PACKAGES;
+ static const ZypperCommand PATCHES;
+ static const ZypperCommand PATTERNS;
+ //static const ZypperCommand PRODUCTS;
static const ZypperCommand XML_LIST_UPDATES_PATCHES;
static const ZypperCommand ADD_LOCK;
@@ -72,9 +75,12 @@
INFO_e,
LIST_UPDATES_e,
PATCH_CHECK_e,
- SHOW_PATCHES_e,
+ //PACKAGES_e,
+ PATCHES_e,
+ PATTERNS_e,
+ //PRODUCTS_e,
XML_LIST_UPDATES_PATCHES_e,
-
+
ADD_LOCK_e,
REMOVE_LOCK_e,
LIST_LOCKS_e,
Modified: trunk/zypper/src/zypper-misc.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-misc.cc?rev=9617&r1=9616&r2=9617&view=diff
==============================================================================
--- trunk/zypper/src/zypper-misc.cc (original)
+++ trunk/zypper/src/zypper-misc.cc Mon Apr 14 18:06:36 2008
@@ -1450,48 +1450,6 @@
out.info(s.str(), Out::QUIET);
}
-static string string_status (const ResStatus& rs)
-{
- return rs.isInstalled () ? _("Installed"): _("Uninstalled");
-}
-
-// patches
-void show_patches(Zypper & zypper)
-{
- MIL << "Pool contains " << God->pool().size() << " items. Checking whether available patches are needed." << std::endl;
-
- Table tbl;
- TableHeader th;
- th << (zypper.globalOpts().is_rug_compatible ? _("Catalog: ") : _("Repository: "))
- << _("Name") << _("Version") << _("Category") << _("Status");
- tbl << th;
-
- ResPool::byKind_iterator
- it = God->pool().byKindBegin<Patch>(),
- e = God->pool().byKindEnd<Patch>();
- for (; it != e; ++it )
- {
- ResObject::constPtr res = it->resolvable();
- Patch::constPtr patch = asKind<Patch>(res);
-
- TableRow tr;
- tr << patch->repoInfo().name();
- tr << res->name () << res->edition ().asString();
- tr << patch->category();
- tr << string_status (it->status ());
- if (it->isBroken())
- tr << _("Broken");
- tbl << tr;
- }
- tbl.sort (1); // Name
-
- if (tbl.empty())
- zypper.out().info(_("No needed patches found."));
- else
- // display the result, even if --quiet specified
- cout << tbl;
-}
-
// ----------------------------------------------------------------------------
bool xml_list_patches ()
Modified: trunk/zypper/src/zypper-misc.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-misc.h?rev=9617&r1=9616&r2=9617&view=diff
==============================================================================
--- trunk/zypper/src/zypper-misc.h (original)
+++ trunk/zypper/src/zypper-misc.h Mon Apr 14 18:06:36 2008
@@ -39,9 +39,6 @@
*/
void remove_selections(Zypper & zypper);
-/** List patches */
-void show_patches(Zypper & zypper);
-
/**
* Are there applicable patches?
*/
Modified: trunk/zypper/src/zypper-search.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-search.cc?rev=9617&r1=9616&r2=9617&view=diff
==============================================================================
--- trunk/zypper/src/zypper-search.cc (original)
+++ trunk/zypper/src/zypper-search.cc Mon Apr 14 18:06:36 2008
@@ -1,14 +1,111 @@
-#include "zypper-search.h"
+#include <iostream>
+
+#include "zypp/base/Logger.h"
+#include "zypp/base/Algorithm.h"
+#include "zypp/Patch.h"
+#include "zypp/Pattern.h"
#include "zypper.h"
#include "zypper-main.h"
-#include "zypper-repos.h"
-#include "zypper-misc.h"
+#include "zypper-tabulator.h"
-#include "zypp/base/Algorithm.h"
-#include "zypp/RepoManager.h"
-#include "zypp/RepoInfo.h"
+#include "zypper-search.h"
+
+using namespace zypp;
+using namespace std;
+
+extern ZYpp::Ptr God;
+
+static string string_status (const ResStatus& rs)
+{
+ return rs.isInstalled () ? _("Installed"): _("Uninstalled");
+}
+
+static string string_weak_status(const ResStatus & rs)
+{
+ if (rs.isRecommended())
+ return _("Recommended");
+ if (rs.isSuggested())
+ return _("Suggested");
+ return "";
+}
+
+void list_patches(Zypper & zypper)
+{
+ MIL << "Pool contains " << God->pool().size() << " items. Checking whether available patches are needed." << std::endl;
+
+ Table tbl;
+ TableHeader th;
+ th << (zypper.globalOpts().is_rug_compatible ? _("Catalog: ") : _("Repository: "))
+ << _("Name") << _("Version") << _("Category") << _("Status");
+ tbl << th;
+
+ ResPool::byKind_iterator
+ it = God->pool().byKindBegin<Patch>(),
+ e = God->pool().byKindEnd<Patch>();
+ for (; it != e; ++it )
+ {
+ ResObject::constPtr res = it->resolvable();
+ Patch::constPtr patch = asKind<Patch>(res);
+
+ TableRow tr;
+ tr << patch->repoInfo().name();
+ tr << res->name () << res->edition ().asString();
+ tr << patch->category();
+ tr << string_status (it->status ());
+ if (it->isBroken())
+ tr << _("Broken");
+ tbl << tr;
+ }
+ tbl.sort (1); // Name
+
+ if (tbl.empty())
+ zypper.out().info(_("No needed patches found."));
+ else
+ // display the result, even if --quiet specified
+ cout << tbl;
+}
+
+void list_patterns(Zypper & zypper)
+{
+ MIL << "Going to list patterns." << std::endl;
+
+ Table tbl;
+ TableHeader th;
+
+ // translators: S for installed Status
+ th << _("S");
+ th << _("Name") << _("Version");
+ if (!zypper.globalOpts().is_rug_compatible)
+ th << _("Repository") << _("Dependency");
+ tbl << th;
+
+ ResPool::byKind_iterator
+ it = God->pool().byKindBegin(ResKind::pattern),
+ e = God->pool().byKindEnd(ResKind::pattern);
+ for (; it != e; ++it )
+ {
+ Pattern::constPtr pattern = asKind<Pattern>(it->resolvable());
+
+ TableRow tr;
+ tr << (it->isSatisfied() ? "i" : "");
+ tr << pattern->name () << pattern->edition().asString();
+ if (!zypper.globalOpts().is_rug_compatible)
+ {
+ tr << pattern->repoInfo().name();
+ tr << string_weak_status(it->status ());
+ }
+ tbl << tr;
+ }
+ tbl.sort(1); // Name
+
+ if (tbl.empty())
+ zypper.out().info(_("No patterns found."));
+ else
+ // display the result, even if --quiet specified
+ cout << tbl;
+}
// Local Variables:
// c-basic-offset: 2
Modified: trunk/zypper/src/zypper-search.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-search.h?rev=9617&r1=9616&r2=9617&view=diff
==============================================================================
--- trunk/zypper/src/zypper-search.h (original)
+++ trunk/zypper/src/zypper-search.h Mon Apr 14 18:06:36 2008
@@ -73,4 +73,10 @@
}
};
+/** List patches */
+void list_patches(Zypper & zypper);
+
+/** List paterns */
+void list_patterns(Zypper & zypper);
+
#endif /*ZYPPERSEARCH_H_*/
Modified: trunk/zypper/src/zypper.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper.cc?rev=9617&r1=9616&r2=9617&view=diff
==============================================================================
--- trunk/zypper/src/zypper.cc (original)
+++ trunk/zypper/src/zypper.cc Mon Apr 14 18:06:36 2008
@@ -1223,7 +1223,7 @@
break;
}
- case ZypperCommand::SHOW_PATCHES_e:
+ case ZypperCommand::PATCHES_e:
{
static struct option patches_options[] = {
{"repo", required_argument, 0, 'r'},
@@ -1234,13 +1234,39 @@
};
specific_options = patches_options;
_command_help = _(
- "patches\n"
+ "patches (pch) [repository] ...\n"
"\n"
- "List all available patches\n"
+ "List all patches available in specified repositories.\n"
"\n"
" Command options:\n"
"\n"
- "-r, --repo