Skip to content

Commit 05660e2

Browse files
committed
FBT: Don't lint JS packages
1 parent 7d5358b commit 05660e2

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

firmware.scons

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ env = ENV.Clone(
2929
TARGETS_ROOT=Dir("#/targets"),
3030
LINT_SOURCES=[
3131
Dir("applications"),
32+
# Not C code
33+
Dir("!applications/system/js_app/packages"),
3234
],
3335
LIBPATH=[
3436
"${LIB_DIST_DIR}",

scripts/lint.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,25 @@ def init(self):
3535
self.parser_format.set_defaults(func=self.format)
3636

3737
@staticmethod
38-
def _filter_lint_directories(dirnames: list[str]):
38+
def _filter_lint_directories(
39+
dirpath: str, dirnames: list[str], excludes: tuple[str]
40+
):
3941
# Skipping 3rd-party code - usually resides in subfolder "lib"
4042
if "lib" in dirnames:
4143
dirnames.remove("lib")
42-
# Skipping hidden folders
44+
# Skipping hidden and excluded folders
4345
for dirname in dirnames.copy():
4446
if dirname.startswith("."):
4547
dirnames.remove(dirname)
48+
if os.path.join(dirpath, dirname).startswith(excludes):
49+
dirnames.remove(dirname)
4650

47-
def _check_folders(self, folders: list):
51+
def _check_folders(self, folders: list, excludes: tuple[str]):
4852
show_message = False
4953
pattern = re.compile(SOURCE_CODE_DIR_PATTERN)
5054
for folder in folders:
5155
for dirpath, dirnames, filenames in os.walk(folder):
52-
self._filter_lint_directories(dirnames)
56+
self._filter_lint_directories(dirpath, dirnames, excludes)
5357

5458
for dirname in dirnames:
5559
if not pattern.match(dirname):
@@ -61,11 +65,11 @@ def _check_folders(self, folders: list):
6165
"Folders are not renamed automatically, please fix it by yourself"
6266
)
6367

64-
def _find_sources(self, folders: list):
68+
def _find_sources(self, folders: list, excludes: tuple[str]):
6569
output = []
6670
for folder in folders:
6771
for dirpath, dirnames, filenames in os.walk(folder):
68-
self._filter_lint_directories(dirnames)
72+
self._filter_lint_directories(dirpath, dirnames, excludes)
6973

7074
for filename in filenames:
7175
ext = os.path.splitext(filename.lower())[1]
@@ -168,14 +172,20 @@ def _apply_file_permissions(self, sources: list, dry_run: bool = False):
168172

169173
def _perform(self, dry_run: bool):
170174
result = 0
171-
sources = self._find_sources(self.args.input)
175+
excludes = []
176+
for folder in self.args.input.copy():
177+
if folder.startswith("!"):
178+
excludes.append(folder.removeprefix("!"))
179+
self.args.input.remove(folder)
180+
excludes = tuple(excludes)
181+
sources = self._find_sources(self.args.input, excludes)
172182
if not self._format_sources(sources, dry_run=dry_run):
173183
result |= 0b001
174184
if not self._apply_file_naming_convention(sources, dry_run=dry_run):
175185
result |= 0b010
176186
if not self._apply_file_permissions(sources, dry_run=dry_run):
177187
result |= 0b100
178-
self._check_folders(self.args.input)
188+
self._check_folders(self.args.input, excludes)
179189
return result
180190

181191
def check(self):

0 commit comments

Comments
 (0)