8 个版本
0.1.7 | 2024 年 3 月 28 日 |
---|---|
0.1.6 | 2024 年 3 月 3 日 |
0.1.5 | 2024 年 2 月 12 日 |
395 在 开发工具 中排名
每月下载量 471 次
155KB
3.5K SLoC
Licensa
Licensa 是一款强大的 CLI 工具,旨在实现源代码许可证管理的无缝操作。开发者可以轻松地 验证、应用、修改 和 执行 SPDX 许可证头。
截至目前,Licensa 兼容 65 种以上的文件类型,使其成为多代码环境中的许可证管理的灵活和全面解决方案。
你可能还想要查找
概述
init
生成项目范围的 Licensa 配置。
licensa init [OPTIONS]
apply
将 SPDX 版权许可证头添加到源代码文件。
licensa apply [OPTIONS]
verify
验证源代码文件中是否存在许可证头。
licensa verify
安装
Cargo
cargo install licensa
Linux
Licensa 目前支持以下架构
- x86_64 (64 位 Intel/AMD 处理器)
- aarch64 (64 位 ARM 处理器)
运行以下命令并遵循屏幕上的说明
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ekkolon/licensa/main/scripts/install.sh)"
此脚本将
- 自动检测您的机器架构
- 下载并解压必要的 .tar
- 将
licensa
二进制文件复制到usr/local/bin
有关更多详细信息,您可以直接查看 安装脚本。
Windows (PowerShell)
在运行安装脚本之前,请确保您的 PowerShell 执行策略允许(远程)脚本执行。您可以使用以下命令设置执行策略
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
运行以下脚本将引导您完成安装过程(您可能需要从提升的壳中运行此命令)
Invoke-Expression -Command (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/ekkolon/licensa/main/scripts/install.ps1" -UseBasicParsing).Content
使用方法
这是一个示例教程
假设您有一个 TypeScript 项目 "The Lord Of The Rings Map" (lotr-map),其初始结构如下
.
└── lotr-map/
├── node_modules/
├── src/
│ ├── map/
│ │ └── Terrain.ts # has license header
│ ├── Rivendell.ts # no license header
│ ├── Isengard.ts # no license header
│ ├── Mithrandir.ts # has license header
│ ├── Gondor.ts # has license header
│ └── MinasTirith.ts # has license header
├── .gitignore
├── package.json
└── tsconfig.json
生成项目范围的 Licensa 配置
当存在
.licensarc
配置文件时,后续命令中已经定义在配置文件中的必选参数将变为可选参数。
Licensa 包含一个预构建的 .licensaignore 文件,类似于 .gitignore,允许您指定包括/排除文件的模式,以便在许可过程中使用。
要生成项目范围的配置,请执行以下命令
licensa init --type Apache-2.0 --owner "Eru Ilúvata" --year 2001
执行成功后,该命令将扩展您的项目结构以包含 .licensarc 和 .licensaignore
.
└── lotr-map/
├── node_modules/
├── src/
│ ├── map/
│ │ └── Terrain.ts # has license header
│ ├── Rivendell.ts # no license header
│ ├── Isengard.ts # no license header
│ ├── Mithrandir.ts # has license header
│ ├── Gondor.ts # has license header
│ └── MinasTirith.ts # has license header
├── .gitignore
├── .licensaignore # ADDED
├── .licensarc # ADDED
├── package.json
└── tsconfig.json
生成的 .licensarc
配置文件将包含以下设置
{
"type": "Apache-2.0",
"owner": "Eru Ilúvata",
"year": 2001
}
为源文件添加许可证头
在前面描述的项目布局的基础上,注意到已经有三个源文件应用了 SPDX 许可证头。因此,这些文件被排除在许可过程之外。
使用来自 .licensarc
配置文件的默认值
licensa apply
src/Rivendell.ts
/**
* Copyright 2001 Eru Ilúvata
* SPDX-License-Identifier: Apache-2.0
*/
import Terrain from './map/Terrain.ts';
export class Rivendell extends Terrain {}
src/Isengard.ts
/**
* Copyright 2001 Eru Ilúvata
* SPDX-License-Identifier: Apache-2.0
*/
import Terrain from './map/Terrain.ts';
export class Isengard extends Terrain {}
使用提供的选项覆盖默认值
licensa apply --type AGPL-3.0-only --owner Sauron --year "2002-present"
src/Rivendell.ts
/**
* Copyright 2002-present Sauron
* SPDX-License-Identifier: AGPL-3.0-only
*/
import Terrain from './map/Terrain.ts';
export class Rivendell extends Terrain {}
src/Isengard.ts
/**
* Copyright 2002-present Sauron
* SPDX-License-Identifier: AGPL-3.0-only
*/
import Terrain from './map/Terrain.ts';
export class Isengard extends Terrain {}
CLI 参考
命令
init
生成项目范围的 Licensa 配置。
licensa init [OPTIONS]
apply
将 SPDX 版权许可证头添加到源代码文件。
licensa apply [OPTIONS]
verify
验证源代码文件中是否存在许可证头。
licensa verify
选项
-t, --type required
SPDX 许可证标识符(不区分大小写)
如果存在于 .licensarc 配置文件中则为可选
默认值: N/A
-o, --owner required
版权所有者
如果存在于 .licensarc 配置文件中则为可选
默认值: N/A
--year 版权年份或年份范围
默认值: null
--exclude 要排除在许可过程之外的 glob 模式列表
全局
--verbose 详细命令输出
-h, --help 显示帮助信息
-v, --version 显示程序版本号
许可证
根据您的选择,许可协议可以是以下之一
。
贡献
除非您明确说明,否则您根据 Apache-2.0 许可证定义的任何有意提交以包含在此作品中的贡献,都将根据上述方式双重许可,而无需任何额外条款或条件。
依赖项
~18-35MB
~552K SLoC