summaryrefslogtreecommitdiff
path: root/tools/rebuild.php
blob: 29331ce4b3e8a025b4470b12567a0ce4d0e6809c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/php
<?php
	require dirname(__FILE__) . '/inc/cli.php';
	
	$start = microtime(true);
	
	echo "== Tinyboard {$config['version']} ==\n";	
	
	if(!is_writable($config['file_script'])) {
		get_httpd_privileges();
	}
	
	echo "Clearing template cache...\n";
	$twig = new Twig_Environment($loader, Array(
		'cache' => "{$config['dir']['template']}/cache"
	));
	$twig->clearCacheFiles();
	
	echo "Regenerating theme files...\n";
	rebuildThemes('all');
	
	echo "Generating Javascript file...\n";
	buildJavascript();
	
	$main_js = $config['file_script'];
	
	$boards = listBoards();
	
	foreach($boards as &$board) {
		echo "Opening board /{$board['uri']}/...\n";
		openBoard($board['uri']);
		
		echo "Creating index pages...\n";
		buildIndex();
		
		if($config['file_script'] != $main_js) {
			// different javascript file
			echo "Generating Javascript file...\n";
			buildJavascript();
		}
		
		$query = query(sprintf("SELECT `id` FROM `posts_%s` WHERE `thread` IS NULL", $board['uri'])) or error(db_error());
		while($post = $query->fetch()) {
			echo "Rebuilding #{$post['id']}...\n";
			buildThread($post['id']);
		}
	}
	
	printf("Complete! Took %g seconds\n", microtime(true) - $start);
	
	modLog('Rebuilt everything using tools/rebuild.php');