rafrsr / licenser
自动将许可证头部文档块添加到您的源文件中。
Requires
- php: >=5.6
- symfony/console: ~2.8|~3.0
- symfony/filesystem: ~2.8|^3.1
- symfony/finder: ~2.8|~3.0
- symfony/stopwatch: ~2.8|^3.1
- symfony/yaml: ~2.8|~3.0
- twig/twig: ~1.2
Requires (Dev)
- phpunit/phpunit: ^5.0
- satooshi/php-coveralls: dev-master
README
自动将许可证头部文档块添加到您的源文件目录(ies)。
- 接受源文件目录或单个源文件的路径进行处理
- 接受包含您自定义许可证文档块的文件路径
- 可以检查您的源文件是否包含正确的许可证信息
- 支持通过每个项目的
.yml
配置进行全局安装
安装
您可以通过以下方式之一获取 rafrsr/licenser
的副本。
作为 Phar
您可以直接下载一个预编译的、即用型的 Phar 到任何目录。只需从我们的发布页面下载最新的 licenser.phar
文件。
运行以下命令以验证一切是否正常
php licenser.phar --version
现在可以复制此工具,并在任何项目中使用
更新 Phar
没有单独的更新程序,只需再次下载最新版本并覆盖现有的 Phar。
使用 Composer 安装
或者,您还可以将 Licenser 作为您的开发依赖项的一部分进行安装。您可能希望使用 require-dev 部分在生产环境中排除 rafrsr/licenser。
- 安装 composer
- 执行:
require rafrsr/licenser --dev
- 运行
./vendor/bin/licenser --version
更新依赖项
只需运行 composer update rafrsr/licenser
即可更新到最新版本。
用法
使用内置许可证类型
Licenser 支持以下内置许可证和头部
- Apache 2.0 许可证(在 Licenser 中称为
apache2.0
) - MIT 许可证(在 Licenser 中称为
mit
) - 默认 - 不是一个许可证,是添加到任何项目的常见头部(在 Licenser 中称为
default
) - Symfony - 是 symfony 组件和捆绑中常用的头部(在 Licenser 中称为
symfony
)
要使用这些内置许可证之一,只需将自定义许可证文件的路径替换为内置许可证的名称。例如,如果您想使用 MIT 许可证,则可以运行类似以下命令
./bin/licenser run /path/to/files mit
运行以下命令时使用 default
头部
./bin/licenser run /path/to/files
内置许可证中的值替换
当使用内置许可证时,Licenser 将将特殊占位符替换为自定义值。占位符会根据许可证而有所不同
例如
./bin/licenser /path/to/files -p author:"Author Name <email@example.com>" -p version:1.0 ./bin/licenser /path/to/files mit -p author:"Author Name <email@example.com>" ./bin/licenser /path/to/files apache2.0 -p author:"Author Name <email@example.com>" ./bin/licenser /path/to/files symfony -p author:"Author Name <email@example.com>" -p package:MyPHPPackage
创建您自己的许可证模板
可以使用简单的文本文件创建许可证模板。许可证模板使用 Twig 处理,然后可以使用任何 Twig 功能。
例如
This file is part of the {{ package }}.
(c) {{ 'now'|date('Y') }}
@version {{ version }}
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
要处理此许可证
./bin/licenser /path/to/files /path/to/license -p package:MyPHPPackage -p version:1.0
注意:命令行中传递的参数可以在许可证模板中使用
检查文件以获取正确的许可证
Licenser 还允许您检查您的源文件是否包含正确的许可证信息。如果有任何源文件没有与您提供的选项匹配的许可证头部,它会警告您。
./bin/licenser /path/to/files mit --only-check
默认情况下,检查只返回所有文件是否正常或异常,但可以使用详细级别来查看更多详细信息。
./bin/licenser /path/to/files mit --only-check -vv
详细级别在所有操作中可用
dry-run
Licenser 还允许您使用 dry-run
验证所有可用更改。这是正常过程和 only-check
的组合,在添加头部之前验证所有更改以查看受影响的文件。
./bin/licenser /path/to/files mit --dry-run -vv
每个项目的 YML 配置
授权器支持为每个项目创建具有自定义设置的 .yml
文件。使用全局安装的 授权器 和所有项目相同的命令行很有帮助。
在您的项目目录下创建一个 yml 文件
例如:
#.licenser.yml finder: in: - src - tests license: default parameters: author: Rafael SR <https://github.com/rafrsr> package: Licenser version: '@Rafrsr\Licenser\Licenser::VERSION'
然后执行
./bin/licenser --config=.licenser.yml
或者
./bin/licenser MyClass.php --config=.licenser.yml
在第二个示例中,finder
被覆盖,并将给定的配置应用到指定的文件或目录。
YML 设置
- finder: 用于创建 Finder 实例以定位源文件
- in: [array, string] 相对目录以查找文件
- name: [array, string] 要处理的文件名称(默认:*.php)
- exclude: [array, string] 排除目录
- path: [array, string] 通过路径限制文件和目录
- notPath: [array, string] 通过路径排除文件和目录
- size: [array, string] 通过大小限制,例如 ['>= 1K','<= 2K']
- date: [array, string] 通过最后修改日期限制文件
要查看所有可用选项和用法,请参阅: Finder。此配置中给出的所有选项都用于构建 Finder 实例。
- finders: [array] 要使用多个不同文件类型或源的多重 Finder 的数组
- license: [string] 要使用的内置许可证的名称或相对文件名
- license_content: [string] 作为不引用任何文件的许可证的替代方案创建许可证
- parameters: [array] 传递到模板的参数数组
注意:您可以在参数中通过
@
在常量名称之前引用常量,例如:@Rafrsr\Licenser\Licenser::VERSION
在其他文件类型(如 JavaScript 源文件)中的使用
默认情况下,授权器仅查找名为 *.php
的文件,您可以在 Finder 配置中更改此行为。
例如:
#.licenser.yml finder: in: - src name: - *.php - *.js
为每种文件类型使用多 Finder
授权器 支持配置多个 Finder,以便在文件夹中查找不同的文件类型,使用 finders
而不是 finder
以启用此功能。
例如:
#.licenser.yml finders: php: in: - src javascript: in: - web/js/ name: '*.js' notPath: - jquery - bootstrap
上述示例在 src 文件夹中查找默认的 *.php
文件,并在 web/js 文件夹中查找 *.js
文件,忽略此位置中的 jquery 和 bootstrap 文件夹。
注意
建议在运行工具时,您的源文件处于版本控制之下,因为该工具仍处于实验阶段。
版权
本项目遵循 MIT 许可证。