/** * Return a new file based on the one passed in but with the last part of the * file extension removed. * For example: xxx.mysql.gz would become xxx.mysql * * * @param \BackupMigrate\Core\File\BackupFileInterface $file * @return \BackupMigrate\Core\File\BackupFileWritableInterface * A new writable backup file with the last extension removed and * all of the metadata from the previous file. */ public function popExt(BackupFileInterface $file) { // Pop the last extension from the last of the file. $parts = $file->getExtList(); array_pop($parts); $new_ext = implode($parts, '.'); // Create a new temp file with the new extension $out = new WritableStreamBackupFile($this->adapter->createTempFile($new_ext)); // Copy the file metadata to a new TempFile $out->setMetaMultiple($file->getMetaAll()); $out->setName($file->getName()); $out->setExtList($parts); return $out; }