blob: 1ea62c12b359cc3a10edbcc1659207881505a620 [file] [log] [blame] [view]
# Licenses_cpp data directory
This directory contains all the data that the licenses_cpp executable needs to
validate the engine repository. There are 3 main divisions of this data:
- include.txt -- A list of all the files that will be checked.
- exclude.txt -- A list of all the files that will be excluded.
- data/ -- A catalog of all the accepted and known licenses.
- secondary/ -- Secondary licenses to be included.
All regex are in the [re2 format](https://github.com/google/re2/wiki/syntax).
## include.txt
The file format for the include.txt is a list of regular expressions that
describe the files that should be considered for checking. Each regex is
required to be a **full match** to be considered.
Lines prefixed with `#` will be treated as comments. Comments trailing `#` on
lines that start with other characters are not yet supported.
## exclude.txt
The exclude file format is in the same format as the include.txt. It's important
to note that the regex's must be full matches on the relative paths to the
"--working_dir" path.
## data/
Each file in the `data/` directory represents an accepted license which can
show up in source code or in its own LICENSE file. The format is the following:
1) First line - name of the matcher
2) Second line - Unique regex which cannot overlap with other matcher's unique
regexes.
3) Remaining lines - Matcher regex that will be used to extract the full text
of the accepted license. The regexes have the following properties:
- All whitespace is considered `\s+`.
- Trailing whitespace is ignored.
- Matched groups are extracted from the output. Example:
`match("\[(.*)\]", "[hi]") -> "[]"`.
## secondary/
This directory structure needs to match the one found in the working directory.
License files here will be added verbatim to the output.