1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2025-01-26 06:28:19 +01:00
phorge-arcanist/src/lint/linter/ArcanistFilenameLinter.php
Joshua Spence 67b6bed92e Tidying up of linter code.
Summary: Various tidying up of linting code.

Test Plan: `arc lint` and `arc unit` still pass.

Reviewers: chad, epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9625
2014-06-20 18:26:44 +10:00

56 lines
1.2 KiB
PHP

<?php
/**
* Stifles creativity in choosing imaginative file names.
*/
final class ArcanistFilenameLinter extends ArcanistLinter {
const LINT_BAD_FILENAME = 1;
public function getInfoName() {
return pht('Filename');
}
public function getInfoDescription() {
return pht(
'Stifles developer creativity by requiring files have uninspired names '.
'containing only letters, numbers, period, hyphen and underscore.');
}
public function getLinterName() {
return 'NAME';
}
public function getLinterConfigurationName() {
return 'filename';
}
public function shouldLintBinaryFiles() {
return true;
}
public function getLintNameMap() {
return array(
self::LINT_BAD_FILENAME => pht('Bad Filename'),
);
}
public function lintPath($path) {
if (!preg_match('@^[a-z0-9./\\\\_-]+$@i', $path)) {
$this->raiseLintAtPath(
self::LINT_BAD_FILENAME,
pht(
'Name files using only letters, numbers, period, hyphen and '.
'underscore.'));
}
}
public function shouldLintDirectories() {
return true;
}
public function shouldLintSymbolicLinks() {
return true;
}
}