summaryrefslogtreecommitdiff
path: root/apt-private
diff options
context:
space:
mode:
Diffstat (limited to 'apt-private')
-rw-r--r--apt-private/private-download.cc26
1 files changed, 18 insertions, 8 deletions
diff --git a/apt-private/private-download.cc b/apt-private/private-download.cc
index 40312d0c8..5cdcf6038 100644
--- a/apt-private/private-download.cc
+++ b/apt-private/private-download.cc
@@ -309,12 +309,18 @@ bool DoClean(CommandLine &)
}
pkgAcquire Fetcher;
- Fetcher.GetLock(archivedir);
- Fetcher.Clean(archivedir);
- Fetcher.Clean(archivedir + "partial/");
+ if (archivedir.empty() == false && FileExists(archivedir) == true)
+ {
+ Fetcher.GetLock(archivedir);
+ Fetcher.Clean(archivedir);
+ Fetcher.Clean(archivedir + "partial/");
+ }
- Fetcher.GetLock(listsdir);
- Fetcher.Clean(listsdir + "partial/");
+ if (listsdir.empty() == false && FileExists(listsdir) == true)
+ {
+ Fetcher.GetLock(listsdir);
+ Fetcher.Clean(listsdir + "partial/");
+ }
pkgCacheFile::RemoveCaches();
@@ -338,11 +344,15 @@ bool DoClean(CommandLine &)
};
bool DoAutoClean(CommandLine &)
{
+ std::string const archivedir = _config->FindDir("Dir::Cache::Archives");
+ if (FileExists(archivedir) == false)
+ return true;
+
// Lock the archive directory
FileFd Lock;
if (_config->FindB("Debug::NoLocking",false) == false)
{
- int lock_fd = GetLock(_config->FindDir("Dir::Cache::Archives") + "lock");
+ int lock_fd = GetLock(flCombine(archivedir, "lock"));
if (lock_fd < 0)
return _error->Error(_("Unable to lock the download directory"));
Lock.Fd(lock_fd);
@@ -354,7 +364,7 @@ bool DoAutoClean(CommandLine &)
LogCleaner Cleaner;
- return Cleaner.Go(_config->FindDir("Dir::Cache::archives"),*Cache) &&
- Cleaner.Go(_config->FindDir("Dir::Cache::archives") + "partial/",*Cache);
+ return Cleaner.Go(archivedir, *Cache) &&
+ Cleaner.Go(flCombine(archivedir, "partial/"), *Cache);
}
/*}}}*/