Go Licensing Processor - thing that extracts licenses of your applications into various formats.
Stanislav N. aka pztrn
b1c765ed4c
All checks were successful
continuous-integration/drone/push Build is passing
|
||
---|---|---|
cmd/glp | ||
configuration | ||
httpclient | ||
outputters | ||
parsers | ||
projecter | ||
structs | ||
.drone.yml | ||
.gitignore | ||
glp.example.yaml | ||
go.mod | ||
go.sum | ||
README.md |
GLP
GLP stands for Go Licensing Processor. It is an utility that parses application's dependencies, gets their licenses and copyright information and writing gathered data into report file.
Supported languages
- Go (dep and modules)
Supported report file formats
- CSV
Supported VCS and sites
It was tested for git repositories with various sites (github.com, gitlab.com, self-hosted Gitea, even my giredore). It will work with any hosting that supports ?go-get=1
URL parameter and which outputs go-import and go-source meta lines.
But there are some caveats appeared:
- Github most of times will not add
go-source
meta line in HTML's<head>
tag. There are a workaround for that here.
Installation
It is enough to issue:
go get -u go.dev.pztrn.name/glp/cmd/glp
Usage
See glp -h
for a list of possible options.
Example usage
glp -config ./.glp.yaml -pkgs /home/pztrn/projects/go/src/go.dev.pztrn.name/discordrone,/home/pztrn/projects/go/src/go.dev.pztrn.name/opensaps -outfile /home/pztrn/deps-test.csv
Configuration
For now you can configure only debug output for logging. See ToDo below.
ToDo
- Ability to overwrite all things about dependency, like copyrights, license URL and so on via configuration file.
- Ability to use it as library.
- Ability to use it in CI with alerts about bad licenses.
- Ability to use it for projects written in other languages than Go (javascript, python, java, and so on).
- More outputters - PDF, xlsx and so on.
- (Maybe) Use
go list
output for gathering dependencies.