separate main rebuilder from bootstrap environment

This commit is contained in:
mappu 2020-05-03 16:17:36 +12:00
parent 4379d3f428
commit be2354c9b8
3 changed files with 40 additions and 23 deletions

27
build-worker Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/php
<?php
require __DIR__ . '/lib/bootstrap.php';
function main($args) {
$config = setup_vars();
$total = $args[0];
$pos = $args[1];
// Perform build tasks
if ($pos == 0) {
buildcommon();
if (array_key_exists('redirect', $config)) {
buildredirects( $config['redirect'] );
}
if (array_key_exists('golang-subpackages', $config)) {
buildgosubpackages( $config['golang-subpackages'] );
}
} else {
buildprojects($pos, array_decimate(listprojects(), $total, $pos));
}
}
main(array_slice($_SERVER['argv'], 1));

View File

@ -1,4 +1,3 @@
#!/usr/bin/php
<?php <?php
ini_set('display_errors', 'On'); ini_set('display_errors', 'On');
@ -11,12 +10,17 @@ require __DIR__.'/CProject.php';
define('SHIELDS_CACHE_DIR', __DIR__.'/../shields_cache/'); define('SHIELDS_CACHE_DIR', __DIR__.'/../shields_cache/');
function main($args) { /**
$basedir = './'; * Set up global defines for a given codesite project
$total = $args[0]; * Should be called once we have the root path for a codesite project.
$pos = $args[1]; *
*/
function setup_vars(string $basedir="./"): array {
// Parse configuration // Parse configuration
if (! is_file($basedir.'config.ini')) {
die("[FATAL] Non-file '${basedir}config.ini'!\n");
}
$config = @parse_ini_file( $config = @parse_ini_file(
$basedir . 'config.ini', $basedir . 'config.ini',
@ -25,7 +29,7 @@ function main($args) {
); );
if ($config === false) { if ($config === false) {
die("[FATAL] Couldn't load '${basedir}/config.ini'!\n"); die("[FATAL] Couldn't load '${basedir}config.ini'!\n");
} }
define('BASEDIR', $basedir); define('BASEDIR', $basedir);
@ -39,19 +43,5 @@ function main($args) {
define('ARTICLE_HEADER', (isset($config['codesite']['article_header']) ? $config['codesite']['article_header'] : 'ABOUT') ); define('ARTICLE_HEADER', (isset($config['codesite']['article_header']) ? $config['codesite']['article_header'] : 'ABOUT') );
define('SHIELDS_PREFIX', isset($config['codesite']['shields_prefix'])); define('SHIELDS_PREFIX', isset($config['codesite']['shields_prefix']));
// Perform build tasks return $config;
if ($pos == 0) {
buildcommon();
if (array_key_exists('redirect', $config)) {
buildredirects( $config['redirect'] );
} }
if (array_key_exists('golang-subpackages', $config)) {
buildgosubpackages( $config['golang-subpackages'] );
}
} else {
buildprojects($pos, array_decimate(listprojects(), $total, $pos));
}
}
main(array_slice($_SERVER['argv'], 1));

View File

@ -40,7 +40,7 @@ buildsite() {
local threadcount=$(numcpus) local threadcount=$(numcpus)
for i in $(seq 0 "$threadcount") ; do for i in $(seq 0 "$threadcount") ; do
"${APP_DIR}/lib/bootstrap.php" "$threadcount" "$i" & "${APP_DIR}/build-worker" "$threadcount" "$i" &
done done
wait wait