# scanCode.py configuration file

# List of filenames containing the text of valid license (headers)
# These files SHOULD be in the same directory path where scanCode.py
# resides.
[Licenses]
ASFLicenseHeader.txt

# Filters (path/filename) with wildcards and associated scan checks
# that are to be run against them.  The checks are actual valid
# function names found in scanCode.py.
[Includes]
*=is_not_symlink
*.scala=has_block_license, no_tabs, no_trailing_spaces, eol_at_eof
*.py=no_tabs, no_trailing_spaces, eol_at_eof
*.java=has_block_license, no_tabs, no_trailing_spaces, eol_at_eof
*.js=no_tabs, no_trailing_spaces, eol_at_eof
*.gradle=no_tabs, no_trailing_spaces, eol_at_eof
*.md=no_tabs, eol_at_eof
*.go=has_block_license, no_tabs, no_trailing_spaces, eol_at_eof
build.xml=no_tabs, no_trailing_spaces, eol_at_eof
deploy.xml=no_tabs, no_trailing_spaces, eol_at_eof

# List of paths (inclusive of subdirectories) to exlude from code scanning
[Excludes]
# General exclusions
.tox
.git
tests/bad
tests/mixed
tests/MixedCase
tests/exclude


[Options]
# Not all code files allow licenses to appear starting at the first character
# of the file. This option tells the scan to allow licenses to appear starting
# within first 'x' characters of each code file (as provided by this option's
# value).
LICENSE_SLACK_LENGTH=500
