1 个不稳定版本
0.1.0 | 2022 年 5 月 21 日 |
---|
#2947 在 解析器实现
9KB
153 行
SemVerq
SemVerq 是一个 CLI 工具,用于
- 验证 SemVer 格式
- 访问 SemVer 结构
- 将 SemVer 转换为 JSON
功能
验证
对于 -i
选项,semverq 验证输入字符串是否为 SemVer。
$ semverq -i '1.2.3-beta+dev-armhf'
(nothing is output)
$ echo $?
0
$ semverq -i '1.2.3-beta+dev+armhf'
invalid format as semver: 1.2.3-beta+dev+armhf
$ echo $?
150
如果没有指定 -
选项,semverq 从标准输入读取字符串。
$ semverq <<<'1.2.3-input+stdin'
$ echo $?
0
转换为 JSON
对于 -
选项,semverq 将输入转换为 JSON。
$ semverq -j -i '1.2.3-beta+36a1d2f'
{
"major": 1,
"minor": 2,
"patch": 3,
"pre-release": "beta",
"build": "36a1d2f"
}
如果不存在 预发布
或 构建
,则其字段的值将为 null
。
$ semverq -j -i '1.2.3'
{
"major": 1,
"minor": 2,
"patch": 3,
"pre-release": null,
"build": null
}
访问部分
对于 -
选项,访问 SemVer 部分。
仅获取主版本
$ semverq -q '.major' -i '1.2.3-beta+36a1d2f'
1
构建一个包含 预发布
和 构建
的 JSON 对象
$ semverq -q '{ "pre-release": ".pre-release", "build": ".build" }' -i '1.2.3-beta+36a1d2f'
{ "pre-release": "beta", "build": "36a1d2f" }
访问器
支持以下访问器
.major
主版本。.minor
次版本。.patch
补丁版本。.pre-release
或.pre
预发布版本。.build
构建元数据。.version-core
简写为.major..minor..patch
。
匹配检查
对于 -
选项,semverq 检查与给定要求的匹配。该要求由逗号分隔的版本约束构成。此匹配语法和规则与 Rust 的包系统 中的相同。
匹配情况
$ semverq -m '>1.2.1, <=2.0.0' -i '1.2.3'
$ echo $?
0
不匹配情况
$ semverq -m '^1.2.1, 1.3.*' -i '1.2.3-beta+dev-armhf'
Version (1.2.3-beta+dev-armhf) does not match that requirement (^1.2.1, 1.3.*).
$ echo $?
152
无效要求
$ semverq -m '>1.2.1, <=2.0.0.' -i '1.2.3'
invalid format as version requirement: >1.2.1, <=2.0.0.
$ echo $?
151
依赖关系
~4.5–6.5MB
~115K SLoC