Update license script apps

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
Christoph Wurst 2019-12-03 18:54:35 +01:00
parent 3eb3c3f884
commit a166796378
No known key found for this signature in database
GPG Key ID: CC42AC2A7F0E56D8
1 changed files with 41 additions and 15 deletions

View File

@ -161,8 +161,12 @@ With help from many libraries and frameworks including:
$license = str_replace('@COPYRIGHT@', $copyrightNotices, $license);
}
$source = $this->eatOldLicense($source);
[$source, $isStrict] = $this->eatOldLicense($source);
if ($isStrict) {
$source = "<?php" . PHP_EOL . PHP_EOL . 'declare(strict_types=1);' . PHP_EOL . PHP_EOL . $license . PHP_EOL . $source;
} else {
$source = "<?php" . PHP_EOL . $license . PHP_EOL . $source;
}
file_put_contents($path,$source);
echo "License updated: $path" . PHP_EOL;
}
@ -203,9 +207,25 @@ With help from many libraries and frameworks including:
*/
private function eatOldLicense($source) {
$lines = explode(PHP_EOL, $source);
$isStrict = false;
while(!empty($lines)) {
$line = $lines[0];
if (strpos($line, '<?php') !== false) {
if (trim($line) === '<?php') {
array_shift($lines);
continue;
}
if (strpos($line, '<?php declare(strict_types') !== false) {
$isStrict = true;
array_shift($lines);
continue;
}
if (strpos($line, 'declare (strict_types') !== false) {
$isStrict = true;
array_shift($lines);
continue;
}
if (strpos($line, 'declare(strict_types') !== false) {
$isStrict = true;
array_shift($lines);
continue;
}
@ -228,7 +248,7 @@ With help from many libraries and frameworks including:
break;
}
return implode(PHP_EOL, $lines);
return [implode(PHP_EOL, $lines), $isStrict];
}
private function getCopyrightNotices($path, $file) {
@ -364,7 +384,9 @@ if (isset($argv[1])) {
$licenses->exec($argv[1], isset($argv[2]) ? $argv[1] : false);
} else {
$licenses->exec([
'../apps/accessibility',
'../apps/admin_audit',
'../apps/cloud_federation_api',
'../apps/comments',
'../apps/dav',
'../apps/encryption',
@ -375,17 +397,21 @@ if (isset($argv[1])) {
'../apps/files_sharing',
'../apps/files_trashbin',
'../apps/files_versions',
'../apps/lookup_server_connector',
'../apps/oauth2',
'../apps/provisioning_api',
'../apps/settings',
'../apps/sharebymail',
'../apps/systemtags',
'../apps/testing',
'../apps/theming',
'../apps/twofactor_backupcodes',
'../apps/updatenotification',
'../apps/user_ldap',
'../build/integration/features/bootstrap',
'../core',
'../lib',
'../ocs',
'../settings',
'../console.php',
'../cron.php',
'../index.php',