From dc856902feb5158e6a7e7b98388a25e6903d41b4 Mon Sep 17 00:00:00 2001 From: Max Pozdeev Date: Tue, 1 Sep 2020 12:42:25 +0300 Subject: [PATCH] move build script to repo --- buildzip.php | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100755 buildzip.php diff --git a/buildzip.php b/buildzip.php new file mode 100755 index 0000000..3f8aeff --- /dev/null +++ b/buildzip.php @@ -0,0 +1,114 @@ +#!/usr/bin/env php + [-o source.zip] [-v VERSION]"); +} + +$repo = $argv[1]; +$dir = sys_get_temp_dir(). DIRECTORY_SEPARATOR. "mytinytodo.build"; #php 5.2.1 +$curdir = getcwd(); +$zipfile = $curdir. DIRECTORY_SEPARATOR. 'mytinytodo-v@VERSION-@REV.zip'; +$ver = 0; + +while ($arg = next($argv)) +{ + if ($arg == '-o') { + $zipfile = next($argv); + } + elseif ($arg == '-v') { + $ver = next($argv); + } +} + +deleteTreeIfDir($dir); +$out = `git clone $repo $dir 2>&1`; +if (!is_dir($dir)) { + die("Error while clone: $out\n"); +} +print "> Repository was cloned to temp dir: $dir\n"; + + +#get current version number if not specified +if (!$ver) +{ + chdir($dir); + $fh = fopen('version.txt', 'r') or die("Cant open version.txt\n"); + $ver = trim(fgets($fh, 100)); + fclose($fh); +} +chdir($dir. DIRECTORY_SEPARATOR. 'src'); +$rev = trim(`git show --format=format:%H --summary`); +##$ver = str_replace('@REV', $rev, $ver); +print "> Version is $ver\n"; + + +rename('db/todolist.db.empty', 'db/todolist.db'); +rename('db/config.php.default', 'db/config.php'); + + +$fh = fopen("./themes/default/index.php", 'a') or die("cant write index.php\n"); +fwrite($fh, "\n"); +fclose($fh); + +#replace @VERSION +replaceVer('./themes/default/index.php', $ver); +replaceVer('./setup.php', $ver); +replaceVer('./init.php', $ver); + +unlink('./tmp/sessions/empty'); + +# save only 2 languages +$dh = opendir('./lang/') or die("Cant opendir lang\n"); +while (false !== ($f = readdir($dh))) { + if (!in_array($f, ['.', '..', '.htaccess', 'class.default.php', 'en.php', 'ru.php'])) { + unlink('./lang/'. $f); + } +} +closedir($dh); + +chdir('..'); # to the root of repo +rename('src', 'mytinytodo') or die("Cant rename 'src'\n"); + +`zip -9 -r mytinytodo.zip mytinytodo`; #OS dep.!!! + +$zipfile = str_replace('@VERSION', $ver, $zipfile); +$zipfile = str_replace('@REV', $rev, $zipfile); + +chdir($curdir); +rename("$dir/mytinytodo.zip", $zipfile); + +deleteTreeIfDir($dir); +echo("> Temp dir was cleaned\n"); + +echo("> Build is stored in $zipfile\n"); + + + + + + +function deleteTreeIfDir($dir) +{ + if ( is_dir($dir) ) { + switch (PHP_OS) { + case 'Darwin': + system("rm -rf $dir"); + break; + case 'Windows': + system("rmdir /s /q $dir"); + break; + default: + die("Unknown system ". PHP_OS. "\n"); + } + } +} + +function replaceVer($filename, $ver) +{ + $s = @file_get_contents($filename) or die("Cant open $filename\n"); + $s = str_replace('@VERSION', $ver, $s); + @file_put_contents($filename, $s) or die("Cant write $filename\n"); +} \ No newline at end of file