]> git.saurik.com Git - apt.git/commitdiff
apt-get update works now
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:51:25 +0000 (16:51 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:51:25 +0000 (16:51 +0000)
Author: jgg
Date: 1998-11-12 04:10:52 GMT
apt-get update works now

apt-pkg/acquire-item.cc
apt-pkg/acquire.cc
apt-pkg/acquire.h
cmdline/apt-get.cc

index d1233e887032edcbabb577a30d214ab6a72fda54..7cd43f4e665db39a28eacf516da9556860705fc2 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire-item.cc,v 1.9 1998/11/11 06:54:13 jgg Exp $
+// $Id: acquire-item.cc,v 1.10 1998/11/12 04:10:52 jgg Exp $
 /* ######################################################################
 
    Acquire Item - Item to acquire
@@ -168,13 +168,14 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string MD5)
       FinalFile += URItoFileName(Location->PackagesURI());
       Rename(DestFile,FinalFile);
       
+      /* We restore the original name to DestFile so that the clean operation
+         will work OK */
+      DestFile = _config->FindDir("Dir::State::lists") + "partial/";
+      DestFile += URItoFileName(Location->PackagesURI());
+      
       // Remove the compressed version.
       if (Erase == true)
-      {
-        DestFile = _config->FindDir("Dir::State::lists") + "partial/";
-        DestFile += URItoFileName(Location->PackagesURI());
         unlink(DestFile.c_str());
-      }      
       return;
    }
 
index 3e22268a7093da7eb666801c6e3916dd70088bac..972a466c57582f12c0e458197a880603b2e13b77 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire.cc,v 1.13 1998/11/11 23:45:08 jgg Exp $
+// $Id: acquire.cc,v 1.14 1998/11/12 04:10:54 jgg Exp $
 /* ######################################################################
 
    Acquire - File Acquiration
@@ -23,6 +23,7 @@
 #include <apt-pkg/error.h>
 #include <strutl.h>
 
+#include <dirent.h>
 #include <sys/time.h>
                                                                        /*}}}*/
 
@@ -343,7 +344,48 @@ pkgAcquire::Worker *pkgAcquire::WorkerStep(Worker *I)
    return I->NextAcquire;
 };
                                                                        /*}}}*/
-
+// pkgAcquire::Clean - Cleans a directory                              /*{{{*/
+// ---------------------------------------------------------------------
+/* This is a bit simplistic, it looks at every file in the dir and sees
+   if it is part of the download set. */
+bool pkgAcquire::Clean(string Dir)
+{
+   DIR *D = opendir(Dir.c_str());   
+   if (D == 0)
+      return _error->Errno("opendir","Unable to read %s",Dir.c_str());
+   
+   string StartDir = SafeGetCWD();
+   if (chdir(Dir.c_str()) != 0)
+   {
+      closedir(D);
+      return _error->Errno("chdir","Unable to change to ",Dir.c_str());
+   }
+   
+   for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D))
+   {
+      // Skip some files..
+      if (strcmp(Dir->d_name,"lock") == 0 ||
+         strcmp(Dir->d_name,"partial") == 0 ||
+         strcmp(Dir->d_name,".") == 0 ||
+         strcmp(Dir->d_name,"..") == 0)
+        continue;
+      
+      // Look in the get list
+      vector<Item *>::iterator I = Items.begin();
+      for (; I != Items.end(); I++)
+        if (flNotDir((*I)->DestFile) == Dir->d_name)
+           break;
+      
+      // Nothing found, nuke it
+      if (I == Items.end())
+        unlink(Dir->d_name);
+   };
+   
+   chdir(StartDir.c_str());
+   closedir(D);
+   return true;   
+}
+                                                                       /*}}}*/
 // Acquire::MethodConfig::MethodConfig - Constructor                   /*{{{*/
 // ---------------------------------------------------------------------
 /* */
index 5d6e5502cb30babf0283688ee94d83993a50d1c4..c85a7aef75d0fe6dc44f98c5b3dbbdc19b8dee62 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire.h,v 1.10 1998/11/11 06:54:17 jgg Exp $
+// $Id: acquire.h,v 1.11 1998/11/12 04:10:55 jgg Exp $
 /* ######################################################################
 
    Acquire - File Acquiration
@@ -98,6 +98,9 @@ class pkgAcquire
    Worker *WorkerStep(Worker *I);
    inline Item **ItemsBegin() {return Items.begin();};
    inline Item **ItemsEnd() {return Items.end();};
+
+   // Cleans out the download dir
+   bool Clean(string Dir);
    
    pkgAcquire(pkgAcquireStatus *Log = 0);
    ~pkgAcquire();
index d9aa9cebe4d9841db84e9c160518e158ee772e37..2ed05b8aa8261484c01c054fdadee445d6b3f7af 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: apt-get.cc,v 1.6 1998/11/11 23:45:56 jgg Exp $
+// $Id: apt-get.cc,v 1.7 1998/11/12 04:10:56 jgg Exp $
 /* ######################################################################
    
    apt-get - Cover for dpkg
@@ -472,6 +472,11 @@ bool DoUpdate(CommandLine &)
    if (Fetcher.Run() == false)
       return false;
 
+   // Clean out any old list files
+   if (Fetcher.Clean(_config->FindDir("Dir::State::lists")) == false ||
+       Fetcher.Clean(_config->FindDir("Dir::State::lists") + "partial/") == false)
+      return false;
+   
    // Prepare the cache.   
    CacheFile Cache;
    if (Cache.Open() == false)