X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=lint.sh;h=ef4dacd7abc49ab407b534d0a0b99d0394967b6d;hb=197b2754b31117cf74d2ed0f54d1ef1a74c298f3;hp=890820d9147c397f3d8a9d517ed1317e49a2fe9f;hpb=758a629f806fa73483f730fb343013acd0ace078;p=dygraphs.git diff --git a/lint.sh b/lint.sh index 890820d..ef4dacd 100755 --- a/lint.sh +++ b/lint.sh @@ -1,14 +1,36 @@ #!/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' + +if [ $# -gt 1 ]; then + echo "Usage: $0 [file.js]" + exit 1 +fi + +RETURN_VALUE=0 + +if [ $# -eq 0 ]; then + files=$(ls dygraph*.js plugins/*.js | grep -v combined | grep -v dev.js| grep -v externs) +else + files=$1 +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 +42,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