2017-07-12 09:52:42 +00:00
< ? php
/**
* @ copyright Copyright ( c ) 2017 Morris Jobke < hey @ morrisjobke . de >
*
* @ 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 />.
*
*/
$expectedFiles = [
'.' ,
'..' ,
'.codecov.yml' ,
'.drone.yml' ,
2019-11-08 00:28:39 +00:00
'.editorconfig' ,
2019-10-02 09:07:09 +00:00
'.eslintrc.js' ,
2017-07-12 09:52:42 +00:00
'.git' ,
2018-12-21 10:02:22 +00:00
'.gitattributes' ,
2017-07-12 09:52:42 +00:00
'.github' ,
'.gitignore' ,
'.gitmodules' ,
'.htaccess' ,
'.idea' ,
'.jshintrc' ,
'.mailmap' ,
'.scrutinizer.yml' ,
'.tag' ,
2017-08-25 15:48:04 +00:00
'.tx' ,
2017-07-12 09:52:42 +00:00
'.user.ini' ,
'3rdparty' ,
'apps' ,
'AUTHORS' ,
'autotest-checkers.sh' ,
'autotest-external.sh' ,
'autotest-js.sh' ,
'autotest.sh' ,
2019-05-23 15:03:04 +00:00
'babel.config.js' ,
2017-07-12 09:52:42 +00:00
'build' ,
'CHANGELOG.md' ,
2018-01-10 10:03:12 +00:00
'CODE_OF_CONDUCT.md' ,
2017-07-12 09:52:42 +00:00
'composer.json' ,
'config' ,
'console.php' ,
'contribute' ,
'COPYING-README' ,
2019-10-02 09:07:09 +00:00
'COPYING' ,
2017-07-12 09:52:42 +00:00
'core' ,
'cron.php' ,
'index.html' ,
'index.php' ,
'lib' ,
2019-02-25 14:49:29 +00:00
'Makefile' ,
2017-07-12 09:52:42 +00:00
'occ' ,
2018-06-11 09:23:16 +00:00
'ocm-provider' ,
2019-10-02 09:07:09 +00:00
'ocs-provider' ,
'ocs' ,
2018-12-21 10:02:22 +00:00
'package-lock.json' ,
2019-10-02 09:07:09 +00:00
'package.json' ,
2017-07-12 09:52:42 +00:00
'public.php' ,
'README.md' ,
'remote.php' ,
'resources' ,
'robots.txt' ,
'status.php' ,
'tests' ,
'themes' ,
'version.php' ,
2019-02-12 19:16:43 +00:00
'webpack.common.js' ,
'webpack.dev.js' ,
'webpack.prod.js' ,
2017-07-12 09:52:42 +00:00
];
$actualFiles = [];
$files = new \DirectoryIterator ( __DIR__ . '/..' );
foreach ( $files as $file ) {
$actualFiles [] = $file -> getFilename ();
}
$additionalFiles = array_diff ( $actualFiles , $expectedFiles );
$missingFiles = array_diff ( $expectedFiles , $actualFiles );
$failed = false ;
if ( count ( $additionalFiles ) > 0 ) {
echo sprintf ( 'ERROR: There were %d additional files:' , count ( $additionalFiles )) . PHP_EOL ;
echo implode ( PHP_EOL , $additionalFiles ) . PHP_EOL ;
$failed = true ;
}
if ( count ( $missingFiles ) > 0 ) {
echo sprintf ( 'ERROR: There were %d missing files:' , count ( $missingFiles )) . PHP_EOL ;
echo implode ( PHP_EOL , $missingFiles ) . PHP_EOL ;
$failed = true ;
}
if ( $failed ) {
echo 'ERROR: Please remove or add those files again or inform the release team about those now files to be included or excluded from the release tar ball.' . PHP_EOL ;
exit ( 1 );
}
echo 'OK: all expected files are present and no additional files are there.' . PHP_EOL ;
exit ( 0 );