mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-07-21 12:46:48 +00:00
c9f37fc613
This runs linting using the "arc lint" command of arcanist, which notably gets run automatically as part of the arc diff workflow. Changes: - The major change is that arc lint reports, by default, only issues on changed lines instead of changed files (--lintall changes that). - JSHint is largely redundant with eslint and does not support some of the new Javascript functionality that we are able to use in 0 A.D., such as conditional chaining, thus it is removed (of course, users can still run it manually). - Eslint 7 is supported out of the box and updated to ES 2020 - cppcheck and eslint are optional - if the executable is not found (e.g. in PATH), it will fallback to a 'dummy' PHP script that does nothing. This has been tested on windows, mac and Debian (CI). - The licence year linter now suggests replacement, and has been rewritten as an arcanist linter. - Add a JSON error linter. The intention is to have non-intrusive external linting, and largely the same text linting. Coala has largely gone unmaintained in the past few years (more so than arcanist anyways) and installing it on modern Python is convoluted. Differential Revision: https://code.wildfiregames.com/D3639 This was SVN commit r25056.
44 lines
1.4 KiB
PHP
Executable File
44 lines
1.4 KiB
PHP
Executable File
#!/usr/bin/env php
|
|
<?php
|
|
/**
|
|
* Copyright (C) 2021 Wildfire Games.
|
|
* This file is part of 0 A.D.
|
|
*
|
|
* 0 A.D. 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 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* 0 A.D. 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 0 A.D. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
|
|
/**
|
|
* This file replaces cppcheck if the former is not found, to avoid failure in 'arc lint'.
|
|
* It is written in PHP as we can assume php is installed if arcanist is to work at all.
|
|
* It mimics `cppcheck --xml`.
|
|
* Set the VERBOSE env variable to generate an 'advice' level lint message.
|
|
*/
|
|
|
|
$verbose = getenv("VERBOSE") ? getenv("VERBOSE") : false;
|
|
|
|
$advice = !$verbose ? "" : <<<EOD
|
|
<error id="skipped" msg="Cppcheck was not found - skipped" severity="advice" inconclusive="true">
|
|
<location file="build/arclint/dummies/cppcheck.php" line="23"/>
|
|
</error>
|
|
EOD;
|
|
|
|
$str = <<<EOD
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<results version="2"><errors>$advice</errors></results>
|
|
EOD;
|
|
|
|
fwrite(STDERR, $str);
|
|
?>
|