github.com/joey-fossa/fossa-cli@v0.7.34-0.20190708193710-569f1e8679f0/docs/integrations/adding-new-languages.md (about)

     1  # Adding New Languages
     2  
     3  ## How language integrations work
     4  
     5  You can add support for a languages by creating an `Analyzer` for that language.
     6  The `Analyzer` interface describes key functionality that FOSSA CLI relies on to
     7  perform dependency analysis:
     8  
     9  - `Discover` does initialization for the builder and gathers environment
    10    context (e.g. binary paths).
    11  - `Build` runs a default build of the module if the user requests it.
    12  - `Analyze` returns a list of dependencies in a standard format.
    13  - `IsBuilt` detects whether a module requires a build.
    14  
    15  A `Dependency` is a component with a locator. Locators are built out of 3 parts:
    16  - `Fetcher`: the component's source ecosystem (e.g. `npm` or `mvn`).
    17  - `Package`: the package name in the ecosystem's registries.
    18  - `Revision`: the revision (or version) name in the ecosystem's registries.