summaryrefslogtreecommitdiff
path: root/maintenance/updateSearchIndex.php
blob: a7f25624b12f0d72dfc42042964ba7054be691b6 (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
53
54
55
56
<?php
/**
 * Script for periodic off-peak updating of the search index
 *
 * Usage: php updateSearchIndex.php [-s START] [-e END] [-p POSFILE] [-l LOCKTIME] [-q]
 * Where START is the starting timestamp
 * END is the ending timestamp
 * POSFILE is a file to load timestamps from and save them to, searchUpdate.pos by default
 * LOCKTIME is how long the searchindex and cur tables will be locked for
 * -q means quiet
 *
 * @addtogroup Maintenance
 */

/** */
$optionsWithArgs = array( 's', 'e', 'p' );

require_once( 'commandLine.inc' );
require_once( 'updateSearchIndex.inc' );

if ( isset( $options['p'] ) ) {
	$posFile = $options['p'];
} else {
	$posFile = 'searchUpdate.pos';
}

if ( isset( $options['e'] ) ) {
	$end = $options['e'];
} else {
	$end = wfTimestampNow();
}

if ( isset( $options['s'] ) ) {
	$start = $options['s'];
} else {
	$start = @file_get_contents( $posFile );
	if ( !$start ) {
		$start = wfTimestamp( TS_MW, time() - 86400 );
	}
}

if ( isset( $options['l'] ) ) {
	$lockTime = $options['l'];
} else {
	$lockTime = 20;
}

$quiet = (bool)(@$options['q']);

updateSearchIndex( $start, $end, $lockTime, $quiet );

$file = fopen( $posFile, 'w' );
fwrite( $file, $end );
fclose( $file );