Lint and code-munging tools for Khan Academy codebase
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
contrib
node_modules
vendor
.arcconfig
.arclint
.gitignore
LICENSE
Makefile
README.md
__init__.py
add_pep8_disable_lines.py
eslint_reporter.js
eslintrc
eslintrc.browser
eslintrc.flow
eslintrc.node
eslintrc.prettier
eslintrc.react
eslintrc.shared
githook.py
hook_lib.py
lesshint_reporter.js
lint_blacklist.txt
lint_blacklist_for_testing.txt
lint_util.py
linters.py
package-lock.json
package.json
python_version_compat_test.py
requirements.txt
runlint.py
runlint_test.py
setup.cfg
six.py
static_content_refs.py
test_githook_pre_push.sh
update_eslint_disable_lines.js

README.md

This repository contains linting tools for Khan Academy's codebase.

It uses existing linting tools (pep8, pyflakes, jshint, etc), but has been modified to suit Khan Academy's slightly different style guides.

This repository also contains a wrapper scripts that can be used as a pre-commit hook for Git.

Installation

You should add the local bin/ directory to your system $PATH, for example:

export PATH=$PATH:~/path/to/khan-linter/bin

All dependencies are vendored within the repository itself, so no installation beyond cloning this repository is required.

Usage

Manual

If you would like to lint manually, invoke /path/to/runlint.py or ka-lint.

By default, this will lint all files under the current directory. Alternately, you can specify files on the command line to lint. See

ka-lint --help

for more options.

Automatic

You can update the blacklist file in this repository to control what files should not be linted at all. Alternately, you can create a blacklist of your own, and use the --blacklist_file flag to runlint.py (you'll have to modify hghook.py or githook.py to pass in the name of the blacklist file as well).

To suppress the lint check, set the environment variable FORCE_COMMIT=1 prior to calling git commit.