elm-license-checker
v2.4.0
Published
Check the licenses of Elm packages.
Downloads
1,933
Readme
Elm License Checker
Treats the licenses of the dependent packages.
This is inspired by NPM License Checker.
CLI Interface
You can show the package information with the selected fields.
> elm-license-checker --customPath format.json
├─ elm/[email protected]
│ ├─ name: elm/json
│ ├─ version: 1.1.3
│ ├─ summary: Encode and decode JSON values
│ ├─ license: BSD-3-Clause
│ └─ licenseFile: C:\Users\kazuki\AppData\Roaming\elm\0.19.1\packages\elm\json\1.1.3\LICENSE
├─ elm/[email protected]
│ ├─ name: elm/time
│ ├─ version: 1.0.0
│ ├─ summary: Work with POSIX times, time zones, years, months, days, hours, seconds, etc.
│ ├─ license: BSD-3-Clause
│ └─ licenseFile: C:\Users\kazuki\AppData\Roaming\elm\0.19.1\packages\elm\time\1.0.0\LICENSE
:
See the section “Compatibility with NPM License Checker” for options.
Custom Format
Fields that a format file contains are outputted. Values of fields that licenses do not have are given as ones of fields in a format file. Please also refer a document of the NPM License Checker.
There are an example file in test-asset/format.json.
Library Interface
The following is how to use this as a module.
The JavaScript interface is compatible with NPM License Checker, but is actually a subset.
See the section “Compatibility with NPM License Checker”.
const elc = require('elm-license-checker');
elc.init(
{ start: '/path/to/elm-application' },
function (err, packages) {
if (err) {
// handle the error
} else {
// use the packages
}
}
);
The PureScript interface is also available.
import Prelude
import Effect (Effect)
import ElmLicenseChecker (init)
main :: Effect Unit
main = do
packages <- init "/path/to/elm-application"
-- use the packages
Compatibility with NPM License Checker
Statuses are:
- ⭕ implemented
- ❌ ignored
- 📈 decided to be implemented but not yet done
- 📉 decided to be ignored but not yet done
- ⌛ not decided whether implemented or not
Options
| Option | CLI | JS | PS | Description |
|--------------------------|:---:|:--:|:--:|-----------------------------------------------------------------------------------------------------|
| production
| ⌛ | ⌛ | ⌛ | only show production dependencies |
| development
| ⌛ | ⌛ | ⌛ | only show development dependencies |
| start
| 📈 | ⭕ | ⭕ | give where elm.json is |
| unknown
| ⌛ | ⌛ | ⌛ | report guessed licenses as unknown licenses |
| onlyunknown
| ⌛ | ⌛ | ⌛ | only list packages with unknown or guessed licenses |
| json
| ⭕ | 📈 | ❌ | output in json format |
| csv
| ⌛ | ⌛ | ❌ | output in csv format |
| csvComponentPrefix
| ⌛ | ⌛ | ⌛ | prefix column for component in csv format |
| out
| ⭕ | ❌ | ❌ | write the data to a specific file |
| customPath
| ⭕ | ⭕ | ❌ | add a custom format file in JSON |
| exclude
| ⌛ | ⌛ | ⌛ | exclude modules which licenses are in the comma-separated list from the output |
| relativeLicensePath
| ⌛ | ⌛ | ⌛ | output the location of the license files as relative paths |
| summary
| ⌛ | ⌛ | ⌛ | output a summary of the license usage |
| failOn
| ⌛ | ⌛ | ⌛ | fail (exit with code 1) on the first occurrence of the licenses of the semicolon-separated list |
| onlyAllow
| ⌛ | ⌛ | ⌛ | fail (exit with code 1) on the first occurrence of the licenses not in the semicolon-separated list |
| packages
| ⌛ | ⌛ | ⌛ | restrict output to the packages (package@version) in the semicolon-separated list |
| excludePackages
| ⌛ | ⌛ | ⌛ | restrict output to the packages (package@version) not in the semicolon-separated list |
| excludePrivatePackages
| ⌛ | ⌛ | ⌛ | restrict output to not include any package marked as private |
| direct
| ⌛ | ⌛ | ⌛ | look for direct dependencies only |
Custom Format
There are compatible fields:
- ⭕
name
- ⭕
version
- ⭕
description
the same assummary
- ⭕
copyright
always empty - ⭕
licenses
the same aslicense
- ⭕
licenseFile
- ⭕
licenseText
- ⭕
licenseModified
always empty
There are added fields:
- ⭕
summary
- ⭕
license