Skip to content

Commit e364e25

Browse files
committed
Add recipes to calculate JavaScript SLOC
1 parent 30eff86 commit e364e25

2 files changed

Lines changed: 72 additions & 0 deletions

File tree

tools/make/lib/stats/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
include $(TOOLS_MAKE_LIB_DIR)/stats/git.mk
55
include $(TOOLS_MAKE_LIB_DIR)/stats/npm.mk
66
include $(TOOLS_MAKE_LIB_DIR)/stats/repl.mk
7+
include $(TOOLS_MAKE_LIB_DIR)/stats/sloc_javascript.mk
78

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
2+
# VARIABLES #
3+
4+
# Define the path of the executable for calculating JavaScript SLOC:
5+
JAVASCRIPT_SLOC ?= $(TOOLS_PKGS_DIR)/static-analysis/js/sloc-file-list/bin/cli
6+
7+
# Define the command flags:
8+
JAVASCRIPT_SLOC_FLAGS ?=
9+
10+
11+
# TARGETS #
12+
13+
# Calculate SLOC.
14+
#
15+
# This target calculates JavaScript source lines of code (SLOC).
16+
17+
stats-sloc-javascript: stats-sloc-javascript-src stats-sloc-javascript-tests stats-sloc-javascript-examples stats-sloc-javascript-benchmarks
18+
19+
.PHONY: stats-sloc-javascript
20+
21+
22+
# Calculate source code SLOC.
23+
#
24+
# This target calculates source lines of code (SLOC) for only JavaScript source files.
25+
26+
stats-sloc-javascript-src: $(JAVASCRIPT_SLOC) $(NODE_MODULES)
27+
$(QUIET) $(FIND_SOURCES_CMD) | $(NODE) $(JAVASCRIPT_SLOC) $(JAVASCRIPT_SLOC_FLAGS)
28+
29+
.PHONY: stats-sloc-javascript-src
30+
31+
32+
# Calculate test SLOC.
33+
#
34+
# This target calculates source lines of code (SLOC) for only JavaScript test files.
35+
36+
stats-sloc-javascript-tests: $(JAVASCRIPT_SLOC) $(NODE_MODULES)
37+
$(QUIET) $(FIND_TESTS_CMD) | $(NODE) $(JAVASCRIPT_SLOC) $(JAVASCRIPT_SLOC_FLAGS)
38+
39+
.PHONY: stats-sloc-javascript-tests
40+
41+
42+
# Calculate example code SLOC.
43+
#
44+
# This target calculates source lines of code (SLOC) for only JavaScript example files.
45+
46+
stats-sloc-javascript-examples: $(JAVASCRIPT_SLOC) $(NODE_MODULES)
47+
$(QUIET) $(FIND_EXAMPLES_CMD) | $(NODE) $(JAVASCRIPT_SLOC) $(JAVASCRIPT_SLOC_FLAGS)
48+
49+
.PHONY: stats-sloc-javascript-examples
50+
51+
52+
# Calculate benchmark SLOC.
53+
#
54+
# This target calculates source lines of code (SLOC) for only JavaScript benchmark files.
55+
56+
stats-sloc-javascript-benchmarks: $(JAVASCRIPT_SLOC) $(NODE_MODULES)
57+
$(QUIET) $(FIND_BENCHMARKS_CMD) | $(NODE) $(JAVASCRIPT_SLOC) $(JAVASCRIPT_SLOC_FLAGS)
58+
59+
.PHONY: stats-sloc-javascript-benchmarks
60+
61+
62+
# Calculate SLOC.
63+
#
64+
# This target calculates source lines of code (SLOC) for JavaScript files. Note that we expect `$FILES` to be a JavaScript file list.
65+
#
66+
# TODO: address possibility of `$FILES` exceeding maximum allowed shell arguments
67+
68+
stats-sloc-javascript-files: $(JAVASCRIPT_SLOC) $(NODE_MODULES)
69+
$(QUIET) $(NODE) $(JAVASCRIPT_SLOC) $(JAVASCRIPT_SLOC_FLAGS) $(FILES)
70+
71+
.PHONY: stats-sloc-javascript-files

0 commit comments

Comments
 (0)