Merge pull request #11 from nextcloud/license-script-update
update license script: no more CLA and switch to AGPLv3 or later
This commit is contained in:
commit
ad6e52360a
|
@ -27,6 +27,27 @@ class Licenses
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
$this->licenseText = <<<EOD
|
$this->licenseText = <<<EOD
|
||||||
/**
|
/**
|
||||||
|
@AUTHORS@
|
||||||
|
*
|
||||||
|
* @license GNU AGPL version 3 or any later version
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
EOD;
|
||||||
|
$this->licenseTextLegacy = <<<EOD
|
||||||
|
/**
|
||||||
@AUTHORS@
|
@AUTHORS@
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) @YEAR@, ownCloud, Inc.
|
* @copyright Copyright (c) @YEAR@, ownCloud, Inc.
|
||||||
|
@ -46,7 +67,7 @@ class Licenses
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
EOD;
|
EOD;
|
||||||
$this->licenseText = str_replace('@YEAR@', date("Y"), $this->licenseText);
|
$this->licenseTextLegacy = str_replace('@YEAR@', date("Y"), $this->licenseTextLegacy);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -118,10 +139,15 @@ With help from many libraries and frameworks including:
|
||||||
echo "MIT licensed file: $path" . PHP_EOL;
|
echo "MIT licensed file: $path" . PHP_EOL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$source = $this->eatOldLicense($source);
|
if ($this->isOwnCloudLicensed($source)) {
|
||||||
|
$authors = $this->getAuthors($path, $gitRoot, true);
|
||||||
|
$license = str_replace('@AUTHORS@', $authors, $this->licenseTextLegacy);
|
||||||
|
} else {
|
||||||
$authors = $this->getAuthors($path, $gitRoot);
|
$authors = $this->getAuthors($path, $gitRoot);
|
||||||
$license = str_replace('@AUTHORS@', $authors, $this->licenseText);
|
$license = str_replace('@AUTHORS@', $authors, $this->licenseText);
|
||||||
|
}
|
||||||
|
|
||||||
|
$source = $this->eatOldLicense($source);
|
||||||
$source = "<?php" . PHP_EOL . $license . PHP_EOL . $source;
|
$source = "<?php" . PHP_EOL . $license . PHP_EOL . $source;
|
||||||
file_put_contents($path,$source);
|
file_put_contents($path,$source);
|
||||||
echo "License updated: $path" . PHP_EOL;
|
echo "License updated: $path" . PHP_EOL;
|
||||||
|
@ -143,6 +169,19 @@ With help from many libraries and frameworks including:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function isOwnCloudLicensed($source) {
|
||||||
|
$lines = explode(PHP_EOL, $source);
|
||||||
|
while(!empty($lines)) {
|
||||||
|
$line = $lines[0];
|
||||||
|
array_shift($lines);
|
||||||
|
if (strpos($line, 'ownCloud, Inc') !== false) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $source
|
* @param string $source
|
||||||
* @return string
|
* @return string
|
||||||
|
@ -177,7 +216,7 @@ With help from many libraries and frameworks including:
|
||||||
return implode(PHP_EOL, $lines);
|
return implode(PHP_EOL, $lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getAuthors($file, $gitRoot) {
|
private function getAuthors($file, $gitRoot, $legacyFiles = false) {
|
||||||
// only add authors that changed code and not the license header
|
// only add authors that changed code and not the license header
|
||||||
$licenseHeaderEndsAtLine = trim(shell_exec("grep -n '*/' $file | head -n 1 | cut -d ':' -f 1"));
|
$licenseHeaderEndsAtLine = trim(shell_exec("grep -n '*/' $file | head -n 1 | cut -d ':' -f 1"));
|
||||||
$buildDir = getcwd();
|
$buildDir = getcwd();
|
||||||
|
@ -205,10 +244,19 @@ With help from many libraries and frameworks including:
|
||||||
$authors = array_unique($authors);
|
$authors = array_unique($authors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($legacyFiles) {
|
||||||
$authors = array_map(function($author){
|
$authors = array_map(function($author){
|
||||||
$this->authors[$author] = $author;
|
$this->authors[$author] = $author;
|
||||||
return " * @author $author";
|
return " * @author $author";
|
||||||
}, $authors);
|
}, $authors);
|
||||||
|
} else {
|
||||||
|
$authors = array_map(function($author){
|
||||||
|
$this->authors[$author] = $author;
|
||||||
|
return " * @copyright Copyright (c) " . date("Y") . ", $author";
|
||||||
|
}, $authors);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return implode(PHP_EOL, $authors);
|
return implode(PHP_EOL, $authors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue