MediaWiki
fundraising/REL1_35
updateCredits.php
Go to the documentation of this file.
1
<?php
25
if
( PHP_SAPI !=
'cli'
) {
26
die(
"This script can only be run from the command line.\n"
);
27
}
28
29
// class Collator is provided by the intl extension.
30
// It is only suggested in composer.json, so remind here when not loaded.
31
if
( !extension_loaded(
'intl'
) ) {
32
die(
"This script needs the 'intl' extension to be loaded."
);
33
}
34
35
$CREDITS
=
'CREDITS'
;
36
$START_CONTRIBUTORS
=
'<!-- BEGIN CONTRIBUTOR LIST -->'
;
37
$END_CONTRIBUTORS
=
'<!-- END CONTRIBUTOR LIST -->'
;
38
39
$inHeader
=
true
;
40
$inFooter
=
false
;
41
$header
= [];
42
$contributors
= [];
43
$footer
= [];
44
45
if
( !file_exists(
$CREDITS
) ) {
46
exit(
'No CREDITS file found. Are you running this script in the right directory?'
);
47
}
48
49
$lines
= explode(
"\n"
, file_get_contents(
$CREDITS
) );
50
foreach
(
$lines
as
$line
) {
51
if
(
$inHeader
) {
52
$header
[] =
$line
;
53
$inHeader
=
$line
!==
$START_CONTRIBUTORS
;
54
} elseif (
$inFooter
) {
55
$footer
[] =
$line
;
56
} elseif (
$line
==
$END_CONTRIBUTORS
) {
57
$inFooter
=
true
;
58
$footer
[] =
$line
;
59
}
else
{
60
$name = substr(
$line
, 2 );
61
$contributors
[$name] =
true
;
62
}
63
}
64
unset(
$lines
);
65
66
$lines
= explode(
"\n"
, shell_exec(
'git log --format="%aN"'
) );
67
foreach
(
$lines
as
$line
) {
68
if
( empty(
$line
) ) {
69
continue
;
70
}
71
if
( substr(
$line
, 0, 5 ) ===
'[BOT]'
) {
72
continue
;
73
}
74
$contributors
[
$line
] =
true
;
75
}
76
77
$contributors
= array_keys(
$contributors
);
78
$collator
= Collator::create(
'root'
);
79
$collator
->setAttribute( Collator::NUMERIC_COLLATION, Collator::ON );
80
$collator
->sort(
$contributors
);
81
array_walk(
$contributors
,
function
( &$v, $k ) {
82
$v =
"* {$v}"
;
83
} );
84
85
file_put_contents(
$CREDITS
,
86
implode(
"\n"
, array_merge(
$header
,
$contributors
,
$footer
) ) );
$line
$line
Definition
mcc.php:119
$lines
if(!file_exists( $CREDITS)) $lines
Definition
updateCredits.php:49
$header
$header
Definition
updateCredits.php:41
$collator
$collator
Definition
updateCredits.php:78
$CREDITS
if(PHP_SAPI !='cli') if(!extension_loaded( 'intl')) $CREDITS
Update the CREDITS list by merging in the list of git commit authors.
Definition
updateCredits.php:35
$END_CONTRIBUTORS
$END_CONTRIBUTORS
Definition
updateCredits.php:37
$contributors
$contributors
Definition
updateCredits.php:42
$inHeader
$inHeader
Definition
updateCredits.php:39
$inFooter
$inFooter
Definition
updateCredits.php:40
$footer
$footer
Definition
updateCredits.php:43
$START_CONTRIBUTORS
$START_CONTRIBUTORS
Definition
updateCredits.php:36
maintenance
updateCredits.php
Generated on Mon Nov 25 2024 16:16:36 for MediaWiki by
1.10.0