6 # The zero-argument form lints everything.
8 # See jshint/build/jshint-rhino.js for documentation on these parameters.
9 # devel defines logging globals (i.e. "console.log")
10 # browser defines standard web browser globals (i.e. "document")
11 # shadow disables warnings on multiple var definitions in one scope (i.e. two
13 jsc_opts
='maxerr:10000,devel:true,browser:true,shadow:true'
14 rhino_opts
='maxerr=10000,devel=true,browser=true,shadow=true'
19 files
=$
(ls dygraph
*.js plugins
/*.js datahandler
/*.js gallery
/*.js |
grep -v combined |
grep -v dev.js|
grep -v externs
)
24 if [ -e
/System
/Library
/Frameworks
/JavaScriptCore.framework
/Versions
/A
/Resources
/jsc
]; then
25 # use JSC (Safari/JavaScriptCore) to run JSHint -- much faster than Rhino.
26 echo 'Running JSHint w/ JavaScriptCore (jsc)...'
27 for file in $files; do
28 .
/jshint
/env
/jsc.sh
$file $jsc_opts || RETURN_VALUE
=1
32 echo 'Running JSHint w/ Rhino...'
34 for FILE
in $files; do
35 LINT_RESULT
=$
(java
-jar .
/jsdoc-toolkit
/java
/classes
/js.jar .
/jshint
/build
/jshint-rhino.js
$rhino_opts $FILE)
36 ERRORS
=$
(echo ${LINT_RESULT} |
egrep [^\s
] -c
)
37 if [[ ${ERRORS} -ne
0 ]]; then
38 echo "[jshint] Error(s) in ${FILE}:"
39 printf "%s\n" "${LINT_RESULT}"
42 echo "[jshint] ${FILE} passed!"