Added --print-uris
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:52:34 +0000 (16:52 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:52:34 +0000 (16:52 +0000)
Author: jgg
Date: 1999-01-30 06:07:24 GMT
Added --print-uris

apt-pkg/acquire-item.h
apt-pkg/acquire.cc
apt-pkg/acquire.h
cmdline/apt-get.cc
doc/apt-get.8.yo

index 0b80ca1..676766d 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire-item.h,v 1.12 1998/12/11 06:32:34 jgg Exp $
+// $Id: acquire-item.h,v 1.13 1999/01/30 06:07:24 jgg Exp $
 /* ######################################################################
 
    Acquire Item - Item to acquire
@@ -59,6 +59,7 @@ class pkgAcquire::Item
    virtual void Failed(string Message);
    virtual void Done(string Message,unsigned long Size,string Md5Hash);
    virtual void Start(string Message,unsigned long Size);
+   virtual string MD5Sum() {return string();};
    virtual string Describe() = 0;
    
    virtual string Custom600Headers() {return string();};
@@ -121,6 +122,7 @@ class pkgAcqArchive : public pkgAcquire::Item
    public:
    
    virtual void Failed(string Message);
+   virtual string MD5Sum() {return MD5;};
    virtual void Done(string Message,unsigned long Size,string Md5Hash);
    virtual string Describe();
    
index 125622e..8b1f522 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire.cc,v 1.24 1999/01/27 02:48:52 jgg Exp $
+// $Id: acquire.cc,v 1.25 1999/01/30 06:07:24 jgg Exp $
 /* ######################################################################
 
    Acquire - File Acquiration
@@ -413,6 +413,22 @@ unsigned long pkgAcquire::FetchNeeded()
    return Total;
 }
                                                                        /*}}}*/
+// pkgAcquire::UriBegin - Start iterator for the uri list              /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+pkgAcquire::UriIterator pkgAcquire::UriBegin()
+{
+   return UriIterator(Queues);
+}
+                                                                       /*}}}*/
+// pkgAcquire::UriEnd - End iterator for the uri list                  /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+pkgAcquire::UriIterator pkgAcquire::UriEnd()
+{
+   return UriIterator(0);
+}
+                                                                       /*}}}*/
 
 // Acquire::MethodConfig::MethodConfig - Constructor                   /*{{{*/
 // ---------------------------------------------------------------------
index 2f5da7b..5693615 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire.h,v 1.18 1998/12/11 07:20:33 jgg Exp $
+// $Id: acquire.h,v 1.19 1999/01/30 06:07:24 jgg Exp $
 /* ######################################################################
 
    Acquire - File Acquiration
@@ -98,7 +98,12 @@ class pkgAcquire
    Worker *WorkerStep(Worker *I);
    inline Item **ItemsBegin() {return Items.begin();};
    inline Item **ItemsEnd() {return Items.end();};
-
+   
+   // Iterate over queued Item URIs
+   class UriIterator;
+   UriIterator UriBegin();
+   UriIterator UriEnd();
+   
    // Cleans out the download dir
    bool Clean(string Dir);
 
@@ -123,6 +128,7 @@ struct pkgAcquire::ItemDesc
 class pkgAcquire::Queue
 {
    friend pkgAcquire;
+   friend pkgAcquire::UriIterator;
    Queue *Next;
    
    protected:
@@ -172,6 +178,40 @@ class pkgAcquire::Queue
    ~Queue();
 };
 
+class pkgAcquire::UriIterator
+{
+   pkgAcquire::Queue *CurQ;
+   pkgAcquire::Queue::QItem *CurItem;
+   
+   public:
+   
+   // Advance to the next item
+   inline void operator ++() {operator ++();};
+   void operator ++(int)
+   {
+      CurItem = CurItem->Next;
+      while (CurItem == 0 && CurQ != 0)
+      {
+        CurItem = CurQ->Items;
+        CurQ = CurQ->Next;
+      }
+   };
+   
+   // Accessors
+   inline pkgAcquire::ItemDesc const *operator ->() const {return CurItem;};
+   inline bool operator !=(UriIterator const &rhs) const {return rhs.CurQ != CurQ || rhs.CurItem != CurItem;};
+   inline bool operator ==(UriIterator const &rhs) const {return rhs.CurQ == CurQ && rhs.CurItem == CurItem;};
+   
+   UriIterator(pkgAcquire::Queue *Q) : CurQ(Q), CurItem(0)
+   {
+      while (CurItem == 0 && CurQ != 0)
+      {
+        CurItem = CurQ->Items;
+        CurQ = CurQ->Next;
+      }
+   }   
+};
+
 // Configuration information from each method
 struct pkgAcquire::MethodConfig
 {
index 1cc983e..bdc9c06 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: apt-get.cc,v 1.36 1999/01/30 03:35:28 jgg Exp $
+// $Id: apt-get.cc,v 1.37 1999/01/30 06:07:24 jgg Exp $
 /* ######################################################################
    
    apt-get - Cover for dpkg
@@ -566,6 +566,15 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true)
       if (YnPrompt() == false)
         exit(1);
    }      
+
+   if (_config->FindB("APT::Get::Print-URIs") == true)
+   {
+      pkgAcquire::UriIterator I = Fetcher.UriBegin();
+      for (; I != Fetcher.UriEnd(); I++)
+        cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << 
+              I->Owner->FileSize << ' ' << I->Owner->MD5Sum() << endl;
+      return true;
+   }
    
    // Run it
    if (Fetcher.Run() == false)
@@ -1091,6 +1100,7 @@ int main(int argc,const char *argv[])
       {0,"ignore-hold","APT::Ingore-Hold",0},      
       {0,"no-upgrade","APT::Get::no-upgrade",0},
       {0,"force-yes","APT::Get::force-yes",0},
+      {0,"print-uris","APT::Get::Print-URIs",0},
       {'c',"config-file",0,CommandLine::ConfigFile},
       {'o',"option",0,CommandLine::ArbItem},
       {0,0,0,0}};
index 30a2fc6..768b4e6 100644 (file)
@@ -165,6 +165,12 @@ prompting if it is doing something potentially harmfull. It should not be used
 except in very special situations. Using bf(force-yes) can potentially destroy
 your system! See bf(APT::Get::force-yes).
 
+dit(bf(--print-uris))
+Instead of fetching the files to install their URIs are printed. Each
+URI will have the path, the destination file name, the size and the expected
+md5 hash. Note that the file name to write to will not always match
+the file name on the remote site! See bf(APT::Get::Print-URIs).
+
 dit(bf(-c, --config-file))
 Configuration File; Specify a configuration file to use. bf(apt-get) will
 read the default configuration file and then this configuration file. See