From 9e167ac98153e2a835beffc78ef266c5ccf3600a Mon Sep 17 00:00:00 2001 From: djmaze Date: Mon, 10 Aug 2020 13:47:48 +0200 Subject: [PATCH] Also release a tar.gz --- release.php | 57 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/release.php b/release.php index 487a4bae5..a40fc1b02 100644 --- a/release.php +++ b/release.php @@ -1,48 +1,75 @@ version}.zip"; +$tar_destination = "rainloop-{$package->version}.tar"; + +@unlink($zip_destination); +@unlink($tar_destination); +@unlink("{$tar_destination}.gz"); + passthru($gulp, $return_var); if ($return_var) { exit("gulp failed with error code {$return_var}\n"); } -$package = json_decode(file_get_contents('package.json')); - -$destination = "rainloop-{$package->version}.zip"; +// Temporary rename folder to speed up PharData +if (!rename('rainloop/v/0.0.0', "rainloop/v/{$package->version}")){ + exit('Failed to temporary rename rainloop/v/0.0.0'); +} +register_shutdown_function(function(){ + // Rename folder back to original + @rename("rainloop/v/{$GLOBALS['package']->version}", 'rainloop/v/0.0.0'); +}); $zip = new ZipArchive(); -if (!$zip->open($destination, ZIPARCHIVE::CREATE)) { - exit("Failed to create {$destination}"); +if (!$zip->open($zip_destination, ZIPARCHIVE::CREATE)) { + exit("Failed to create {$zip_destination}"); } +$tar = new PharData($tar_destination); + $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('rainloop/v'), RecursiveIteratorIterator::SELF_FIRST); foreach ($files as $file) { $file = str_replace('\\', '/', $file); - + echo "{$file}\n"; // Ignore "." and ".." folders - if (in_array(substr($file, strrpos($file, '/')+1), array('.', '..'))) - continue; - - $dest = str_replace('/0.0.0', "/{$package->version}", $file); - if (is_dir($file)) { - $zip->addEmptyDir($dest); - } else if (is_file($file)) { - $zip->addFromString($dest, file_get_contents($file)); + if (!in_array(substr($file, strrpos($file, '/')+1), array('.', '..'))) { + if (is_dir($file)) { + $zip->addEmptyDir($file); + } else if (is_file($file)) { + $zip->addFile($file); + } } } +$tar->buildFromDirectory('./', "@rainloop/v/{$package->version}@"); + $zip->addFromString('data/VERSION', $package->version); +$tar->addFromString('data/VERSION', $package->version); + //$zip->addFromString('data/EMPTY', $package->version); +//$tar->addFromString('data/EMPTY', $package->version); + $zip->addFile('_include.php'); +$tar->addFile('_include.php'); $index = file_get_contents('index.php'); $index = str_replace('0.0.0', $package->version, $index); $index = str_replace('source', 'community', $index); $zip->addFromString('index.php', $index); +$tar->addFromString('index.php', $index); $zip->close(); -echo "\n{$destination} created\n"; +$tar->compress(Phar::GZ); +unlink($tar_destination); + +echo "\n{$zip_destination} created\n{$tar_destination}.gz created\n";