#license #spdx #cli #licensing

app licensor

将许可证写入标准输出

5 个稳定版本

2.1.0 2019年11月23日
2.0.0 2019年9月27日
1.0.2 2019年9月20日

命令行工具 中排名 #1967

每月下载次数:31

MIT 许可证

105KB
539 行(不包括注释)

licensor

Preview

将许可证写入标准输出

GitHub Actions

关于

给定其 SPDX ID,将许可证写入标准输出。对于包含版权持有者名称的许可证,可以提供可选的名称。如果找不到提供的 ID,将建议类似的 ID。许可证全部编译到二进制文件中。

功能

  • 简单
  • 许可证直接来自 SPDX,没有稍作编辑的模板
  • 单个二进制文件,许可证在编译时包含在内
  • 支持 WHERE 异常表达式
  • 可以跳过版权声明,这是伯尔尼公约允许的
  • 添加新的许可证只需编辑一个 JSON 文件

原因

我厌倦了为新项目寻找许可证文件浪费时间。

用法

以下是一些用法示例,以获得对整个工作的总体了解。对于详细用法,只需传递 --help 标志。

将 MIT 许可证和版权声明写入 LICENSE

$ licensor MIT "Raphaël Thériault" > LICENSE

将 Apache 2.0 许可证和 LLVM 异常写入 LICENSE,跳过可选部分

$ licensor "Apache-2.0 WITH LLVM-exception" --skip-optional > LICENSE

打印无版权声明的 BSD 3 条款许可证

$ licensor BSD-3-Clause

列出可用的许可证

$ licensor --licenses

安装

有几种安装选项。

欢迎您在其他平台上分发此软件,如果您这样做,请不要犹豫,提出一个 PR 来更新本节!

版本

Crates.io

$ cargo install licensor

AUR

$ yay -S licensor-git

可用的许可证和异常

列表

贡献

欢迎贡献者。如果您看到任何可以修复/改进的内容或有一个新功能想法,只需打开一个 issue 或 PR!

然而,尽量保持主 CLI 简单和轻量。如运行时添加许可证/异常或验证许可证等功能目前未计划,也不会添加。

添加许可证

如果您想将许可证添加到列表中,可以打开一个 issue 或自己添加,这相当简单。

要添加许可证,只需将其添加到 resources/licenses.json,遵循resources/licenses-schema.json中提供的模式。要将更改应用到主CLI,您还需要按顺序运行cargo run -p licensor_fetchcargo run - licensor_codegen。要获取所需信息,请参考SPDX许可证列表

异常情况也是如此。

工作原理

首先,从SPDX许可证列表中解析出资源文件中指定的许可证和异常,然后使用licensor_fetch子crates进行gzip压缩。然后,根据解析出的许可证自动生成codegen.rs文件,使用licensor_codegen子crates,并将其包含在CLI中。

最后,独立构建主CLI,这使得最终用户构建时间相对较快,并且只需要主CLI的依赖项,而不需要辅助子crates的依赖项。

鸣谢

感谢在/r/rust subreddits上提供宝贵反馈和提示的出色的人们,他们表现出了比预期更多的热情。

许可证

licensor遵循MIT许可证

依赖项

~4.5MB
~78K SLoC