Ejemplo n.º 1
0
 public static function getBackupInfo($filename)
 {
     G::LoadThirdParty('pear/Archive', 'Tar');
     $backup = new Archive_Tar($filename);
     //Get a temporary directory in the upgrade directory
     $tempDirectory = PATH_DATA . "upgrade/" . basename(tempnam(__FILE__, ''));
     mkdir($tempDirectory);
     $metafiles = array();
     foreach ($backup->listContent() as $backupFile) {
         $filename = $backupFile["filename"];
         if (strpos($filename, "/") === false && substr_compare($filename, ".meta", -5, 5, true) === 0) {
             if (!$backup->extractList(array($filename), $tempDirectory)) {
                 throw new Exception("Could not extract backup");
             }
             $metafiles[] = "{$tempDirectory}/{$filename}";
         }
     }
     CLI::logging("Found " . count($metafiles) . " workspace(s) in backup\n");
     foreach ($metafiles as $metafile) {
         $data = file_get_contents($metafile);
         $workspaceData = G::json_decode($data);
         CLI::logging("\n");
         workspaceTools::printInfo((array) $workspaceData);
     }
     G::rm_dir($tempDirectory);
 }