mytinytodo/buildtar.php

104 lines
2.4 KiB
PHP
Raw Normal View History

2020-09-01 09:42:25 +00:00
#!/usr/bin/env php
<?php
// PHP 5.4 is required
if ( !isset($argv) || !isset($argv[1]) ) {
2022-07-12 13:19:24 +00:00
die("Usage: buildtar.php <path_to_repo> [-o source.tar.gz] [-v VERSION]\n");
2020-09-01 09:42:25 +00:00
}
$repo = $argv[1];
$dir = sys_get_temp_dir(). DIRECTORY_SEPARATOR. "mytinytodo.build";
2020-09-01 09:42:25 +00:00
$curdir = getcwd();
2022-07-12 13:19:24 +00:00
$archive = $curdir. DIRECTORY_SEPARATOR. 'mytinytodo-v@VERSION-@REV.tar.gz';
2020-09-01 09:42:25 +00:00
$ver = 0;
while ($arg = next($argv))
{
if ($arg == '-o') {
2022-07-12 13:19:24 +00:00
$archive = next($argv);
}
elseif ($arg == '-v') {
$ver = next($argv);
}
2020-09-01 09:42:25 +00:00
}
deleteTreeIfDir($dir);
$out = `git clone $repo $dir 2>&1`;
if (!is_dir($dir)) {
die("Error while clone: $out\n");
2020-09-01 09:42:25 +00:00
}
print "> Repository was cloned to temp dir: $dir\n";
#get current version number if not specified
2022-02-07 16:08:41 +00:00
if (!$ver) {
require_once(__DIR__ . '/src/includes/version.php');
$ver = mytinytodo\Version::VERSION;
2020-09-01 09:42:25 +00:00
}
chdir($dir. DIRECTORY_SEPARATOR. 'src');
$rev = trim(`git show --format=format:%H --summary`);
$rev = substr($rev, 0, 8);
2020-09-01 09:42:25 +00:00
##$ver = str_replace('@REV', $rev, $ver);
print "> Version is $ver\n";
rename('db/todolist.db.empty', 'db/todolist.db');
2022-02-06 15:54:57 +00:00
unlink('./docker-config.php');
unlink('./includes/lang/en-rtl.json');
unlink('./mtt-edit-settings.php');
2020-10-03 18:27:02 +00:00
/*
2020-09-01 09:42:25 +00:00
# save only 2 languages
2020-09-18 20:02:45 +00:00
$dh = opendir('./content/lang/') or die("Cant opendir lang\n");
2020-09-01 09:42:25 +00:00
while (false !== ($f = readdir($dh))) {
if (!in_array($f, ['.', '..', '.htaccess', 'en.json', 'ru.json'])) {
unlink('./content/lang/'. $f);
}
2020-09-01 09:42:25 +00:00
}
closedir($dh);
2020-10-03 18:27:02 +00:00
*/
2020-09-01 09:42:25 +00:00
2020-09-01 09:42:25 +00:00
chdir('..'); # to the root of repo
rename('src', 'mytinytodo') or die("Cant rename 'src'\n");
2022-07-12 13:19:24 +00:00
`tar -czf mytinytodo.tar.gz mytinytodo`; #OS dep.!!!
if (!file_exists('mytinytodo.tar.gz')) {
die("Failed to pack files (no output tar.gz file)\n");
}
2020-09-01 09:42:25 +00:00
2022-07-12 13:19:24 +00:00
$archive = str_replace('@VERSION', $ver, $archive);
$archive = str_replace('@REV', $rev, $archive);
2020-09-01 09:42:25 +00:00
chdir($curdir);
2022-07-12 13:19:24 +00:00
if ( ! rename("$dir/mytinytodo.tar.gz", $archive) ) {
die("Failed to move mytinytodo.tar.gz to $archive");
}
2020-09-01 09:42:25 +00:00
deleteTreeIfDir($dir);
echo("> Temp dir was cleaned\n");
2022-07-12 13:19:24 +00:00
echo("> Build is stored in $archive\n");
2020-09-01 09:42:25 +00:00
function deleteTreeIfDir($dir)
{
if ( is_dir($dir) ) {
switch (PHP_OS) {
case 'Darwin':
2022-07-12 13:23:52 +00:00
case 'Linux':
system("rm -rf $dir");
break;
case 'Windows':
system("rmdir /s /q $dir");
break;
default:
die("Unknown system ". PHP_OS. "\n");
}
}
2020-09-01 09:42:25 +00:00
}