/**
  * Extract metadata from the Module .info file.
  *
  * @param Module $module
  *
  * @return Module
  */
 public function runInfoScan(Module $module)
 {
     // Extract basic info and register the module.
     if ($info_file = $this->findInfoFile($module->getLocation())) {
         $info = drupal_parse_info_file($info_file);
         // Faulty info files cause warnings for me.
         if (empty($info['name'])) {
             // Exception handling.
             $info['name'] = "Bad Info";
             $info['description'] = $info_file;
             $module->addStatus('info:failed');
         }
         $info += array('name' => "Bad info");
         $module->setLabel($info['name']);
         if (isset($info['description'])) {
             $module->setDescription($info['description']);
         }
         if (isset($info['version'])) {
             $module->setVersion($info['version']);
         }
         $module->addStatus('info:processed');
     } else {
         $module->addStatus('info:failed');
     }
     return $module;
 }