# 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]
ASFLicenseHeaderLua.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_trailing_spaces, eol_at_eof
*.lua=has_block_license
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
.bin

# OpenWhisk APIGateway exclusions
lua_install
tests/lua_modules

[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

[Regex]