]> git.saurik.com Git - apt.git/blobdiff - cmdline/apt-cdrom.cc
* cmdline/apt-get.cc:
[apt.git] / cmdline / apt-cdrom.cc
index fc949ce7b3155ce1e0ed2dd376faa7a87fa5f062..8b9eacae67f0d8734b0e4802c3beb71f9e36f131 100644 (file)
@@ -99,7 +99,7 @@ OpProgress* pkgCdromTextStatus::GetOpProgress()
 };
                                                                        /*}}}*/
 // SetupAutoDetect                                                     /*{{{*/
-bool AutoDetectCdrom(pkgUdevCdromDevices &UdevCdroms, int &i)
+bool AutoDetectCdrom(pkgUdevCdromDevices &UdevCdroms, unsigned int &i)
 {
    bool Debug =  _config->FindB("Debug::Acquire::cdrom", false);
 
@@ -120,9 +120,12 @@ bool AutoDetectCdrom(pkgUdevCdromDevices &UdevCdroms, int &i)
       _config->Set("Acquire::cdrom::mount", v[i].MountPath);
       _config->Set("APT::CDROM::NoMount", true);
    } else {
-      MountCdrom("/var/lib/apt/media", v[i].DeviceName);
-      MountCdrom("/var/lib/apt/media", v[i].DeviceName);
-      _config->Set("Acquire::cdrom::mount", "/var/lib/apt/media");
+      string AptMountPoint = _config->FindDir("Dir::Media::MountPath");
+      if (!FileExists(AptMountPoint))
+        mkdir(AptMountPoint.c_str(), 0750);
+      if(MountCdrom(AptMountPoint, v[i].DeviceName) == false)
+        _error->Warning(_("Failed to mount '%s' to '%s'"), v[i].DeviceName.c_str(), AptMountPoint.c_str());
+      _config->Set("Acquire::cdrom::mount", AptMountPoint);
       _config->Set("APT::CDROM::NoMount", true);
    }
    i++;
@@ -142,10 +145,10 @@ bool DoAdd(CommandLine &)
    pkgUdevCdromDevices UdevCdroms;
    pkgCdromTextStatus log;
    pkgCdrom cdrom;
-   bool res = false;
+   bool res = true;
 
-   bool AutoDetect = _config->FindB("Acquire::cdrom::AutoDetect");
-   int count = 0;
+   bool AutoDetect = _config->FindB("Acquire::cdrom::AutoDetect", true);
+   unsigned int count = 0;
    
    if (AutoDetect && UdevCdroms.Dlopen())
    {
@@ -173,7 +176,7 @@ bool DoIdent(CommandLine &)
    bool res = true;
 
    bool AutoDetect = _config->FindB("Acquire::cdrom::AutoDetect");
-   int count = 0;
+   unsigned int count = 0;
    
    if (AutoDetect && UdevCdroms.Dlopen())
    {
@@ -214,6 +217,7 @@ int ShowHelp()
       "  -m   No mounting\n"
       "  -f   Fast mode, don't check package files\n"
       "  -a   Thorough scan mode\n"
+      "  --auto-detect Auto detect drive and mount point\n"
       "  -c=? Read this configuration file\n"
       "  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
       "See fstab(5)\n";
@@ -224,7 +228,7 @@ int main(int argc,const char *argv[])                                       /*{{{*/
 {
    CommandLine::Args Args[] = {
       {'h',"help","help",0},
-      {'a',"auto-detect","Acquire::cdrom::AutoDetect",0},
+      {  0,"auto-detect","Acquire::cdrom::AutoDetect",0},
       {'v',"version","version",0},
       {'d',"cdrom","Acquire::cdrom::mount",CommandLine::HasArg},
       {'r',"rename","APT::CDROM::Rename",0},