Author: jkupec
Date: Mon Mar 10 13:01:07 2008
New Revision: 9070
URL: http://svn.opensuse.org/viewcvs/zypp?rev=9070&view=rev
Log:
- clean also normal meta-data caches
Modified:
trunk/zypper/doc/zypper.8
trunk/zypper/src/zypper-repos.cc
trunk/zypper/src/zypper-repos.h
trunk/zypper/src/zypper.cc
Modified: trunk/zypper/doc/zypper.8
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/doc/zypper.8?rev=9070&r1=9069&r2=9070&view=diff
==============================================================================
--- trunk/zypper/doc/zypper.8 (original)
+++ trunk/zypper/doc/zypper.8 Mon Mar 10 13:01:07 2008
@@ -403,12 +403,16 @@
Only download the raw metadata, don't parse it or build the database.
.TP
-.B clean ...
-Clean up the local caches for all known repository caches. By default, only downloaded package caches are cleaned.
+.B clean [alias|#|URI] ...
+Clean up the local caches for all known or specified repositories. By default,
+ only caches of downloaded packages are cleaned.
.TP
.I \-m, \-\-metadata
Clean up repository metadata cache instead of package cache.
.TP
+.I \-M, \-\-raw\-metadata
+Clean up repository raw metadata cache instead of package cache.
+.TP
.I \-a, \-\-all
Clean up both repository metadata and package caches.
Modified: trunk/zypper/src/zypper-repos.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-repos.cc?rev=9070&r1=9069&r2=9070&view=diff
==============================================================================
--- trunk/zypper/src/zypper-repos.cc (original)
+++ trunk/zypper/src/zypper-repos.cc Mon Mar 10 13:01:07 2008
@@ -914,15 +914,18 @@
// should we clean packages or metadata ?
bool clean_metadata = (copts.find("metadata") != copts.end());
- bool clean_packages = (copts.find("metadata") == copts.end());
+ bool clean_raw_metadata = (copts.find("raw-metadata") != copts.end());
+ bool clean_packages = !(clean_metadata || clean_raw_metadata);
if( copts.find("all") != copts.end() )
{
clean_metadata = true;
+ clean_raw_metadata = true;
clean_packages = true;
}
-
+
DBG << "Metadata will be cleaned: " << clean_metadata << endl;
+ DBG << "Raw metadata will be cleaned: " << clean_raw_metadata << endl;
DBG << "Packages will be cleaned: " << clean_packages << endl;
unsigned error_count = 0;
@@ -956,27 +959,32 @@
}
bool error = false;
- try {
+ try
+ {
if( clean_metadata )
{
zypper.out().info(boost::str(format(
- _("Cleaning metadata for '%s'.")) % repo.alias ()),
- Out::HIGH);
- manager.cleanMetadata(repo);
+ _("Cleaning metadata cache for '%s'.")) % repo.alias ()),
+ Out::HIGH);
+ manager.cleanCache(repo);
}
+ if( clean_raw_metadata )
+ {
+ zypper.out().info(boost::str(format(
+ _("Cleaning raw metadata cache for '%s'.")) % repo.alias ()),
+ Out::HIGH);
+ manager.cleanMetadata(repo);
+ }
if( clean_packages )
{
zypper.out().info(boost::str(format(
// translators: meaning the cached rpm files
_("Cleaning packages for '%s'.")) % repo.alias ()),
- Out::HIGH);
- manager.cleanPackages(repo);
+ Out::HIGH);
+ manager.cleanPackages(repo);
}
- } catch(...) {
- error = true;
}
-
- if (error)
+ catch(...)
{
zypper.out().error(boost::str(format(
_("Cannot clean repository '%s' because of an error."))
@@ -990,7 +998,23 @@
else
enabled_repo_count = 0;
- if (error_count == enabled_repo_count)
+ // clean the target system cache
+ if( clean_metadata )
+ {
+ zypper.out().info(_("Cleaning installed packages cache."), Out::HIGH);
+ try
+ {
+ manager.cleanTargetCache();
+ }
+ catch (...)
+ {
+ zypper.out().error(_("Cannot clean installed packages cache because of an error."));
+ ERR << "Couldn't clean @System cache" << endl;
+ error_count++;
+ }
+ }
+
+ if (error_count >= enabled_repo_count)
{
zypper.out().error(_("Could not clean the repositories because of errors."));
zypper.setExitCode(ZYPPER_EXIT_ERR_ZYPP);
Modified: trunk/zypper/src/zypper-repos.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-repos.h?rev=9070&r1=9069&r2=9070&view=diff
==============================================================================
--- trunk/zypper/src/zypper-repos.h (original)
+++ trunk/zypper/src/zypper-repos.h Mon Mar 10 13:01:07 2008
@@ -35,7 +35,7 @@
/**
- * Clean caches for all repositories.
+ * Clean caches for all (specified) repositories.
*/
void clean_repos(Zypper & zypper);
Modified: trunk/zypper/src/zypper.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper.cc?rev=9070&r1=9069&r2=9070&view=diff
==============================================================================
--- trunk/zypper/src/zypper.cc (original)
+++ trunk/zypper/src/zypper.cc Mon Mar 10 13:01:07 2008
@@ -987,19 +987,21 @@
{"help", no_argument, 0, 'h'},
{"repo", required_argument, 0, 'r'},
{"metadata", no_argument, 0, 'm'},
+ {"raw-metadata", no_argument, 0, 'M'},
{"all", no_argument, 0, 'a'},
{0, 0, 0, 0}
};
specific_options = service_list_options;
_command_help = _(
- "clean\n"
+ "clean [alias|#|URI] ...\n"
"\n"
"Clean local caches.\n"
"\n"
" Command options:\n"
"-r, --repo