X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=lint.sh;h=cd0db4caaef67279cd945f14f85e2284da3f9dc0;hb=11ce506e365f0dfb3a2b489847b5a24d27fe1f9d;hp=890820d9147c397f3d8a9d517ed1317e49a2fe9f;hpb=758a629f806fa73483f730fb343013acd0ace078;p=dygraphs.git diff --git a/lint.sh b/lint.sh index 890820d..cd0db4c 100755 --- a/lint.sh +++ b/lint.sh @@ -1,14 +1,31 @@ #!/bin/bash -jsc_opts='maxerr:10000,devel:true,browser:true' -rhino_opts='maxerr=10000,devel=true,browser=true' +# +# Usage: +# ./lint.sh [file.js] +# +# The zero-argument form lints everything. -files=$(ls dygraph*.js | grep -v combined | grep -v dev.js); +# See jshint/build/jshint-rhino.js for documentation on these parameters. +# devel defines logging globals (i.e. "console.log") +# browser defines standard web browser globals (i.e. "document") +# shadow disables warnings on multiple var definitions in one scope (i.e. two +# loops with "var i") +jsc_opts='maxerr:10000,devel:true,browser:true,shadow:true' +rhino_opts='maxerr=10000,devel=true,browser=true,shadow=true' + +RETURN_VALUE=0 + +if [ $# -eq 0 ]; then + files=$(ls dygraph*.js plugins/*.js datahandler/*.js gallery/*.js | grep -v combined | grep -v dev.js| grep -v externs) +else + files=$@ +fi if [ -e /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc ]; then # use JSC (Safari/JavaScriptCore) to run JSHint -- much faster than Rhino. echo 'Running JSHint w/ JavaScriptCore (jsc)...' for file in $files; do - ./jshint/env/jsc.sh $file $jsc_opts + ./jshint/env/jsc.sh $file $jsc_opts || RETURN_VALUE=1 done else # fall back to Rhino. @@ -20,8 +37,11 @@ else if [[ ${ERRORS} -ne 0 ]]; then echo "[jshint] Error(s) in ${FILE}:" printf "%s\n" "${LINT_RESULT}" + RETURN_VALUE=1 else echo "[jshint] ${FILE} passed!" fi done fi + +exit $RETURN_VALUE