Restore gitignore file contents (#9784)

* Restore gitignore file contents
Set permissions to 664
Add tests to check existence, mode, and size of .gitignore files

* add trailing line return

* git only cares about executable bit, just check that.

* define gitignores separately
This commit is contained in:
Tony Murray 2019-02-06 06:57:44 -06:00 committed by GitHub
parent 2b4d8fc541
commit 964235a82b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 108 additions and 2 deletions

View File

@ -0,0 +1,2 @@
*
!.gitignore

4
logs/.gitignore vendored
View File

@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

4
rrd/.gitignore vendored
View File

@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

View File

@ -32,13 +32,25 @@ args = parser.parse_args()
if args.discard:
if confirm("Are you sure you want to delete all modified and untracked files?"):
dirs = ["app/", "bootstrap/", "contrib/", "database/", "doc/", "html/", "includes/", "LibreNMS/",
"licenses/", "mibs/", "misc/", "resources/", "routes", "scripts/", "sql-schema/", "tests/"]
"licenses/", "mibs/", "misc/", "resources/", "routes", "scripts/", "sql-schema/", "tests/"]
gitignores = ['.gitignore',
'bootstrap/cache/.gitignore',
'logs/.gitignore',
'rrd/.gitignore',
'storage/app/.gitignore',
'storage/app/public/.gitignore',
'storage/debugbar/.gitignore',
'storage/framework/cache/.gitignore',
'storage/framework/sessions/.gitignore',
'storage/framework/testing/.gitignore',
'storage/framework/views/.gitignore',
'storage/logs/.gitignore']
call(["git", "reset", "-q"], cwd=librenms_dir)
call(["git", "checkout", "."], cwd=librenms_dir)
call(["git", "clean", "-d", "-f"] + dirs, cwd=librenms_dir)
# fix messed up gitignore file modes
call(["git", "checkout", "bootstrap/cache/.gitignore", "storage/app/.gitignore", "storage/app/public/.gitignore", "storage/debugbar/.gitignore", "storage/framework/cache/.gitignore", "storage/framework/sessions/.gitignore", "storage/framework/testing/.gitignore", "storage/framework/views/.gitignore", "storage/logs/.gitignore"])
call(["git", "checkout"] + gitignores, cwd=librenms_dir)
if args.vendor:
call(["git", "clean", "-x", "-d", "-f", "vendor/"], cwd=librenms_dir)

View File

@ -0,0 +1,3 @@
*
!public/
!.gitignore

View File

@ -0,0 +1,2 @@
*
!.gitignore

View File

@ -0,0 +1,2 @@
*
!.gitignore

View File

@ -0,0 +1,2 @@
*
!.gitignore

View File

@ -0,0 +1,2 @@
*
!.gitignore

View File

@ -0,0 +1,2 @@
*
!.gitignore

View File

@ -0,0 +1,2 @@
*
!.gitignore

View File

@ -0,0 +1,2 @@
*
!.gitignore

67
tests/GitIgnoreTest.php Normal file
View File

@ -0,0 +1,67 @@
<?php
/**
* GitIgnoreTest.php
*
* -Description-
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2019 Tony Murray
* @author Tony Murray <murraytony@gmail.com>
*/
namespace LibreNMS\Tests;
class GitIgnoreTest extends TestCase
{
private $gitIgnoreFiles = [
'.gitignore',
'bootstrap/cache/.gitignore',
'cache/.gitignore',
'logs/.gitignore',
'resources/views/alerts/templates/.gitignore',
'rrd/.gitignore',
'storage/app/.gitignore',
'storage/app/public/.gitignore',
'storage/debugbar/.gitignore',
'storage/framework/cache/.gitignore',
'storage/framework/sessions/.gitignore',
'storage/framework/testing/.gitignore',
'storage/framework/views/.gitignore',
'storage/logs/.gitignore',
];
public function testGitIgnoresExist()
{
foreach ($this->gitIgnoreFiles as $file) {
$this->assertFileExists($file);
}
}
public function testGitIgnoresMode()
{
foreach ($this->gitIgnoreFiles as $file) {
$this->assertFalse(is_executable($file), "$file should not be executable");
}
}
public function testGitIgnoresNotEmpty()
{
foreach ($this->gitIgnoreFiles as $file) {
$this->assertGreaterThan(4, filesize($file), "$file is empty, it should not be");
}
}
}