]> git.saurik.com Git - apt.git/commitdiff
apt-cdrom ident shouldn't be interactive
authorDavid Kalnischkies <david@kalnischkies.de>
Sun, 9 Mar 2014 23:09:56 +0000 (00:09 +0100)
committerDavid Kalnischkies <david@kalnischkies.de>
Thu, 13 Mar 2014 12:58:45 +0000 (13:58 +0100)
Commit 62dcbf84 changed the code of ident to look more like the code for
add on my suggestion. This made ident interactive as it starts with a
unmount, press enter, mount cycle. The first two are skipped now.
This fixes d-i/apt-setup which is using it to get ID as well as label.

Closes: 740673
apt-pkg/cdrom.cc
apt-pkg/cdrom.h

index 262ff9eab119cba1a3d83d792b62eb90abc51b8f..dd6d51e97194d3c8b9810a6e604f4a0b17f7003c 100644 (file)
@@ -563,7 +563,7 @@ bool pkgCdrom::WriteSourceList(string Name,vector<string> &List,bool Source)
    return true;
 }
                                                                        /*}}}*/
    return true;
 }
                                                                        /*}}}*/
-bool pkgCdrom::MountAndIdentCDROM(Configuration &Database, std::string &CDROM, std::string &ident, pkgCdromStatus * const log)/*{{{*/
+bool pkgCdrom::MountAndIdentCDROM(Configuration &Database, std::string &CDROM, std::string &ident, pkgCdromStatus * const log, bool const interactive)/*{{{*/
 {
    // Startup
    CDROM = _config->FindDir("Acquire::cdrom::mount");
 {
    // Startup
    CDROM = _config->FindDir("Acquire::cdrom::mount");
@@ -581,16 +581,19 @@ bool pkgCdrom::MountAndIdentCDROM(Configuration &Database, std::string &CDROM, s
    // Unmount the CD and get the user to put in the one they want
    if (_config->FindB("APT::CDROM::NoMount", false) == false)
    {
    // Unmount the CD and get the user to put in the one they want
    if (_config->FindB("APT::CDROM::NoMount", false) == false)
    {
-      if(log != NULL)
-        log->Update(_("Unmounting CD-ROM\n"), STEP_UNMOUNT);
-      UnmountCdrom(CDROM);
-
-      if(log != NULL)
+      if (interactive == true)
       {
       {
-        log->Update(_("Waiting for disc...\n"), STEP_WAIT);
-        if(!log->ChangeCdrom()) {
-           // user aborted
-           return false;
+        if(log != NULL)
+           log->Update(_("Unmounting CD-ROM\n"), STEP_UNMOUNT);
+        UnmountCdrom(CDROM);
+
+        if(log != NULL)
+        {
+           log->Update(_("Waiting for disc...\n"), STEP_WAIT);
+           if(!log->ChangeCdrom()) {
+              // user aborted
+              return false;
+           }
         }
       }
 
         }
       }
 
@@ -636,7 +639,7 @@ bool pkgCdrom::Ident(string &ident, pkgCdromStatus *log)            /*{{{*/
 {
    Configuration Database;
    std::string CDROM;
 {
    Configuration Database;
    std::string CDROM;
-   if (MountAndIdentCDROM(Database, CDROM, ident, log) == false)
+   if (MountAndIdentCDROM(Database, CDROM, ident, log, false) == false)
       return false;
 
    if (log != NULL)
       return false;
 
    if (log != NULL)
@@ -662,7 +665,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log)                                     /*{{{*/
 {
    Configuration Database;
    std::string ID, CDROM;
 {
    Configuration Database;
    std::string ID, CDROM;
-   if (MountAndIdentCDROM(Database, CDROM, ID, log) == false)
+   if (MountAndIdentCDROM(Database, CDROM, ID, log, true) == false)
       return false;
 
    if(log != NULL)
       return false;
 
    if(log != NULL)
index f4a8738080522124321af99d3d673d2236e69206..0ed4a6a73f34570a6eb6bc4a218341df8a822ab1 100644 (file)
@@ -74,7 +74,7 @@ class pkgCdrom                                                                /*{{{*/
 
  private:
    bool MountAndIdentCDROM(Configuration &Database, std::string &CDROM,
 
  private:
    bool MountAndIdentCDROM(Configuration &Database, std::string &CDROM,
-        std::string &ident, pkgCdromStatus * const log);
+        std::string &ident, pkgCdromStatus * const log, bool const interactive);
 };
                                                                        /*}}}*/
 
 };
                                                                        /*}}}*/