From db5e9d886238bb4a2eea4f850e959f4ba63766c2 Mon Sep 17 00:00:00 2001 From: Olivier PEREZ Date: Fri, 10 Apr 2015 00:45:31 +0200 Subject: [PATCH] Add scripts/packaging.php that create a ZIP of the Framadate --- scripts/.htaccess | 1 + scripts/packaging.php | 199 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 200 insertions(+) create mode 100644 scripts/packaging.php diff --git a/scripts/.htaccess b/scripts/.htaccess index 3418e55..d30cea2 100644 --- a/scripts/.htaccess +++ b/scripts/.htaccess @@ -1 +1,2 @@ +allow from 127.0.0.1 deny from all \ No newline at end of file diff --git a/scripts/packaging.php b/scripts/packaging.php new file mode 100644 index 0000000..fb29561 --- /dev/null +++ b/scripts/packaging.php @@ -0,0 +1,199 @@ +open($destination, ZIPARCHIVE::CREATE)) { + $source = realpath($source); + if (is_dir($source)) { + $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST); + foreach ($files as $file) { + if (in_array(basename($file), array('.', '..'))) { + continue; + } + $file = realpath($file); + if ($file !== $source && is_dir($file)) { + $zip->addEmptyDir(str_replace($source . '\\', '', str_replace($source . '/', '', $file))); + } else if (is_file($file)) { + $zip->addFromString(str_replace($source . '\\', '', str_replace($source . '/', '', $file)), file_get_contents($file)); + } + } + } else if (is_file($source)) { + $zip->addFromString(basename($source), file_get_contents($source)); + } + } + return $zip->close(); + } + } + return false; +} + +ini_set('max_execution_time', 600); +ini_set('memory_limit', '1024M'); + +define('ROOT', realpath(__DIR__ . '/..')); +define('VENDOR', ROOT . '/vendor'); +define('DIST', ROOT . '/dist'); +define('BUILD', ROOT . '/build'); +define('BUILD_VENDOR', BUILD . '/vendor'); + +include ROOT . '/app/inc/constants.php'; + +$result = new stdClass(); + +echo '
';
+
+// Delete old dist>build directories
+
+if (file_exists(DIST)) {
+    $result->rmdirDist = rrmdir(DIST);
+    i($result->rmdirDist, 'Dist', ' deleted');
+}
+if (file_exists(BUILD)) {
+    $result->rmdirBuild = rrmdir(BUILD);
+    i($result->rmdirBuild, 'Build', ' deleted');
+}
+
+// Create dist>build directories
+
+$result->mkdirDist = mkdir(DIST, 755);
+i($result->mkdirDist, 'Dist', ' created');
+$result->mkdirBuild = mkdir(BUILD, 755);
+i($result->mkdirBuild, 'Build', ' created');
+
+// Copy dependencies files
+
+d('# Dependencies');
+
+$result->composer = copyDependencyToBuild('/composer');
+i($result->composer, 'composer');
+
+$result->o80 = copyDependencyToBuild('/o80/i18n/src');
+i($result->o80, 'o80-i18n');
+
+$result->smarty = copyDependencyToBuild('/smarty/smarty/libs');
+i($result->smarty, 'smarty');
+
+$result->autoload = @copy(VENDOR . '/autoload.php', BUILD_VENDOR . '/autoload.php');
+i($result->autoload, 'autoload');
+
+// Copy assets
+
+d('# Assets');
+
+$assets = array('css', 'fonts', 'images', 'js');
+
+foreach ($assets as $asset) {
+    $result->$asset = @rcopy(ROOT . '/' . $asset, BUILD . '/' . $asset);
+    i($result->$asset, $asset);
+}
+
+// Copy sources
+
+d('# Source directories');
+
+$dirs = array('admin', 'app', 'locale', 'tpl');
+
+foreach ($dirs as $dir) {
+    $result->$dir = @rcopy(ROOT . '/' . $dir, BUILD . '/' . $dir);
+    i($result->$dir, $dir);
+}
+
+d('# Source files');
+
+$files = array(
+    'adminstuds.php',
+    'bandeaux.php',
+    'create_classic_poll.php',
+    'create_date_poll.php',
+    'create_poll.php',
+    'exportcsv.php',
+    'favicon.ico',
+    'htaccess.txt',
+    'index.php',
+    'INSTALL.md',
+    'LICENCE.fr.txt',
+    'LICENSE.en.txt',
+    'maintenance.php',
+    'php.ini',
+    'README.md',
+    'robots.txt',
+    'studs.php'
+);
+
+foreach ($files as $file) {
+    $result->$file = @copy(ROOT . '/' . $file, BUILD . '/' . $file);
+    i($result->$file, $file);
+}
+
+// Zip Dist
+$output = DIST . '/framadate-' . VERSION . '-' . date('Ymd') . '.zip';
+zip(BUILD, $output);
+rrmdir(BUILD);
+
+d('--------');
+d('Distribution file: ' . realpath($output));
+
+$generatedIn = round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 4);
+d('========');
+d('Generated in: ' . $generatedIn . ' secondes');
+echo '
';